Medplum is a healthcare platform that helps you quickly develop high-quality compliant applications.
This report summarizes scanner evidence for medplum/medplum, a TypeScript project with 2,774 GitHub stars. SynthScan examined 1,033,265 lines of code across 4228 source files, recording 1597 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 2.3 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 1188 finding(s).
Are imports declared and package/API names verified? 407 finding(s).
Are wrappers, guards, and repeated structures necessary? 765 finding(s).
Which changes need focused human review? 1597 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1597 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …edplum-healthie-importer/src/list-healthie-patients.ts | 115 | async function fetchAllPatientsWithCursor( | CODE |
| LOW | …althie-importer/src/healthie/questionnaire-response.ts | 75 | export async function fetchHealthieFormAnswerGroups( | CODE |
| LOW | …althie-importer/src/healthie/questionnaire-response.ts | 125 | export function convertHealthieFormAnswerGroupToFhir( | CODE |
| LOW | …althie-importer/src/healthie/questionnaire-response.ts | 188 | export function convertHealthieTimestampToIso(healthieTimestamp: string): string { | CODE |
| LOW | …althie-importer/src/healthie/questionnaire-response.ts | 221 | function convertHealthieAnswerGroupToFhirItem(answers: HealthieFormAnswer[]): QuestionnaireResponseItem | undefined { | CODE |
| LOW | …althie-importer/src/healthie/questionnaire-response.ts | 265 | function convertHealthieAnswerValueToFhir(answer: HealthieFormAnswer): QuestionnaireResponseItemAnswer[] { | CODE |
| LOW | …um-healthie-importer/src/healthie/clinical-activity.ts | 13 | export async function fetchMostRecentMedicationDate( | CODE |
| LOW | …um-healthie-importer/src/healthie/clinical-activity.ts | 57 | export async function fetchMostRecentAllergyDate( | CODE |
| LOW | …um-healthie-importer/src/healthie/clinical-activity.ts | 95 | export async function fetchMostRecentFormAnswerGroupDate( | CODE |
| LOW | …um-healthie-importer/src/healthie/clinical-activity.ts | 141 | export async function fetchLatestClinicalUpdate( | CODE |
| LOW | …les/medplum-healthie-importer/src/healthie/document.ts | 124 | export function convertHealthieDocumentToFhir( | CODE |
| LOW | …s/medplum-healthie-importer/src/healthie/medication.ts | 96 | export function convertHealthieMedicationToFhir( | CODE |
| LOW | …les/medplum-healthie-importer/src/healthie/coverage.ts | 115 | export function convertHealthiePolicyToFhir(policy: HealthiePolicy, patientReference: Reference<Patient>): Coverage { | CODE |
| LOW | …ples/medplum-healthie-importer/src/healthie/patient.ts | 124 | export async function fetchHealthiePatientIdsPage( | CODE |
| LOW | …ples/medplum-healthie-importer/src/healthie/patient.ts | 227 | export function convertHealthiePatientToFhir(healthiePatient: HealthiePatient): Patient { | CODE |
| LOW | …les/medplum-healthie-importer/src/healthie/provider.ts | 93 | export function convertHealthieProviderToPractitioner(provider: HealthieProvider): Practitioner { | CODE |
| LOW | …les/medplum-healthie-importer/src/healthie/provider.ts | 120 | export function convertHealthieProviderToPractitionerRole( | CODE |
| LOW | …ples/medplum-healthie-importer/src/healthie/allergy.ts | 45 | export async function fetchAllergySensitivities( | CODE |
| LOW | …ples/medplum-healthie-importer/src/healthie/allergy.ts | 87 | export function convertHealthieAllergyToFhir( | CODE |
| LOW | …ples/medplum-healthie-importer/src/healthie/allergy.ts | 165 | export function mapHealthieStatusToClinicalStatus(status?: string): 'active' | 'inactive' | 'resolved' { | CODE |
| LOW | …ples/medplum-healthie-importer/src/healthie/allergy.ts | 187 | export function mapHealthieCategoryToType(category: string): AllergyIntolerance['type'] { | CODE |
| LOW | …ples/medplum-healthie-importer/src/healthie/allergy.ts | 206 | export function mapHealthieCategoryTypeToCategory( | CODE |
| LOW | …ples/medplum-healthie-importer/src/healthie/allergy.ts | 232 | export function mapHealthieSeverityToCriticality(severity?: string): AllergyIntolerance['criticality'] { | CODE |
| LOW | …ples/medplum-healthie-importer/src/healthie/allergy.ts | 255 | export function mapHealthieSeverityToReactionSeverity(severity?: string): 'mild' | 'moderate' | 'severe' | undefined { | CODE |
| LOW | examples/medplum-task-demo/src/pages/UploadDataPage.tsx | 163 | async function uploadExampleQualifications(medplum: MedplumClient, profile: Practitioner): Promise<void> { | CODE |
| LOW | …um-websocket-subscriptions-demo/src/pages/HomePage.tsx | 152 | async function createMessageForAnotherPatient(): Promise<void> { | CODE |
| LOW | examples/medplum-provider/src/test-utils/spaces.ts | 21 | export function createMockStreamingResponse(content: string): Response { | CODE |
| LOW | examples/medplum-provider/src/utils/eligibility.ts | 72 | export function getEligibilityServiceTypes(valueSet: ValueSet | undefined): ServiceType[] { | CODE |
| LOW | examples/medplum-provider/src/utils/eligibility.ts | 106 | export function buildEligibilityServiceTypeItems( | CODE |
| LOW | examples/medplum-provider/src/utils/eligibility.ts | 117 | export function buildEligibilityServiceTypesCompose(serviceTypes: readonly ServiceType[]): ValueSetCompose { | CODE |
| LOW | examples/medplum-provider/src/utils/eligibility.ts | 128 | export function buildEligibilityServiceTypesValueSet(serviceTypes: readonly ServiceType[]): ValueSet { | CODE |
| LOW | examples/medplum-provider/src/utils/eligibility.ts | 146 | export function buildEligibilityServiceTypesPatch(serviceTypes: readonly ServiceType[]): PatchOperation[] { | CODE |
| LOW | examples/medplum-provider/src/utils/chargeitems.ts | 13 | export async function applyChargeItemDefinition( | CODE |
| LOW | examples/medplum-provider/src/utils/chargeitems.ts | 44 | export async function getChargeItemsForEncounter( | CODE |
| LOW | …les/medplum-provider/src/utils/communication-search.ts | 20 | export function normalizeCommunicationSearch({ | CODE |
| LOW | …ples/medplum-provider/src/utils/spaceMessaging.test.ts | 14 | function createMockStreamingResponse(chunks: string[]): Response { | CODE |
| LOW | …ples/medplum-provider/src/utils/spaceMessaging.test.ts | 38 | function createMockBufferedResponse(content: string): Response { | CODE |
| LOW | examples/medplum-provider/src/utils/operations.ts | 26 | export async function isCustomOperationAvailable(medplum: MedplumClient, code: string): Promise<boolean> { | CODE |
| LOW | examples/medplum-provider/src/utils/spacePersistence.ts | 65 | function buildMessageCommunication(topicId: string, message: Message): Communication { | CODE |
| LOW | examples/medplum-provider/src/utils/encounter.ts | 119 | async function createChargeItemFromPlanDefinition( | CODE |
| LOW | examples/medplum-provider/src/utils/encounter.ts | 165 | async function handleChargeItemsFromTasks( | CODE |
| LOW | examples/medplum-provider/src/utils/encounter.ts | 199 | async function createChargeItemFromServiceRequest( | CODE |
| LOW | examples/medplum-provider/src/utils/encounter.ts | 365 | async function findExistingPatientCondition( | CODE |
| LOW | examples/medplum-provider/src/utils/labOrderDraft.ts | 267 | function createLabOrderDraftBundle(inputs: PartialLabOrderInputs): Bundle { | CODE |
| LOW | examples/medplum-provider/src/utils/intake-utils.ts | 808 | function getRelatedPersonRelationshipFromCoverage(coverageRelationship: Coding): Coding | undefined { | CODE |
| LOW | examples/medplum-provider/src/utils/medication-gcn.ts | 23 | export function getGcnSeqnosFromMedication(m: Medication): number[] { | CODE |
| LOW | examples/medplum-provider/src/utils/medication-gcn.ts | 55 | export function getUnambiguousGcnSeqnoFromMedication(m: Medication): number | undefined { | CODE |
| LOW | examples/medplum-provider/src/utils/medication-gcn.ts | 73 | export function getDisplayNameFromMedication(m: Medication, routedMedIdSystem: string): string | undefined { | CODE |
| LOW | examples/medplum-provider/src/utils/medication-gcn.ts | 89 | export function getVendorKeyFromMedication(m: Medication, system: string): number | undefined { | CODE |
| LOW | examples/medplum-provider/src/utils/candid.ts | 165 | export async function refreshCandidClaimResponse( | CODE |
| LOW | …ples/medplum-provider/src/utils/medication-gcn.test.ts | 13 | function medicationWithGcnIdentifiers(...values: string[]): Medication { | CODE |
| LOW | examples/medplum-provider/src/utils/billing.ts | 67 | export function getMissingBillingOrganizationFields(organization: Organization): string[] { | CODE |
| LOW | examples/medplum-provider/src/utils/billing.ts | 336 | export function withCandidProviderExtensions(organization: Organization): Organization { | CODE |
| LOW | examples/medplum-provider/src/utils/billing.ts | 401 | export function withCandidPractitionerExtensions(practitioner: Practitioner, billsIndividually: boolean): Practitioner { | CODE |
| LOW | examples/medplum-provider/src/utils/labSearch.ts | 31 | export function addDefaultLabSearchValues(search: SearchRequest, tab: LabTab): SearchRequest { | CODE |
| LOW | …der/src/components/ResourceFormWithRequiredProfile.tsx | 20 | export function ResourceFormWithRequiredProfile(props: ResourceFormWithRequiredProfileProps): JSX.Element { | CODE |
| LOW | …edplum-provider/src/components/labs/OrderLabsModal.tsx | 47 | async function sendLabOrderToHealthGorilla(medplum: MedplumClient, labOrder: ServiceRequest): Promise<void> { | CODE |
| LOW | …r/src/components/pharmacy/ScriptSurePharmacyDialog.tsx | 33 | function ScriptSureSpecialtyFilters({ value, onChange }: ScriptSureSpecialtyFiltersProps): JSX.Element { | CODE |
| LOW | …/src/components/tasks/ScriptSureMessageTaskActions.tsx | 73 | export function ScriptSureMessageTaskActions(props: ScriptSureMessageTaskActionsProps): JSX.Element | null { | CODE |
| LOW | …components/tasks/ScriptSureMessageTaskActions.utils.ts | 28 | export function isScriptSureNewRxErrorTask(task: Task): boolean { | CODE |
| 703 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | packages/cli/src/aws/init.ts | 26 | print('This tool prepares the necessary prerequisites for deploying Medplum in your AWS account.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 27 | print(''); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 28 | print('Most Medplum infrastructure is deployed using the AWS CDK.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 29 | print('However, some AWS resources must be created manually, such as email addresses and SSL certificates.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 30 | print('This tool will help you create those resources.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 31 | print(''); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 32 | print('Upon completion, this tool will:'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 33 | print(' 1. Generate a Medplum CDK config file (i.e., medplum.demo.config.json)'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 34 | print(' 2. Optionally generate an AWS CloudFront signing key'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 35 | print(' 3. Optionally request SSL certificates from AWS Certificate Manager'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 36 | print(' 4. Optionally write server config settings to AWS Parameter Store'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 37 | print(''); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 38 | print('The Medplum infra config file is an input to the Medplum CDK.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 39 | print('The Medplum CDK will create and manage the necessary AWS resources.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 40 | print(''); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 41 | print('We will ask a series of questions to generate your infra config file.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 42 | print('Some questions have predefined options in [square brackets].'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 43 | print('Some questions have default values in (parentheses), which you can accept by pressing Enter.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 44 | print('Press Ctrl+C at any time to exit.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 48 | print('It appears that you do not have AWS credentials configured.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 49 | print('AWS credentials are not strictly required, but will enable some additional features.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 50 | print('If you intend to use AWS credentials, please configure them now.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 55 | print('Medplum deployments have a short environment name such as "prod", "staging", "alice", or "demo".'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 56 | print('The environment name is used in multiple places:'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 57 | print(' 1. As part of config file names (i.e., medplum.demo.config.json)'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 58 | print(' 2. As the base of CloudFormation stack names (i.e., MedplumDemo)'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 59 | print(' 3. AWS Parameter Store keys (i.e., /medplum/demo/...)'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 61 | print('Using environment name "' + config.name + '"...'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 64 | print('Medplum Infrastructure will create a config file in the current directory.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 67 | print('Config file already exists.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 70 | print('Using config file "' + configFileName + '"...'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 74 | print('Most Medplum resources will be created in a single AWS region.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 79 | print('Medplum Infrastructure will use your AWS account number to create AWS resources.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 81 | print('Using the AWS CLI, your current account ID is: ' + currentAccountId); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 87 | print('Medplum will create a CloudFormation stack to manage AWS resources.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 88 | print('AWS CloudFormation stack names '); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 94 | print('Please enter the base domain name for your Medplum deployment.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 95 | print(''); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 96 | print('Medplum deploys multiple subdomains for various services.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 97 | print(''); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 98 | print('For example, "api." for the REST API and "app." for the web application.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 99 | print('The base domain name is the common suffix for all subdomains.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 100 | print(''); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 101 | print('For example, if your base domain name is "example.com",'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 102 | print('then the REST API will be "api.example.com".'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 103 | print(''); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 104 | print('The base domain should include the TLD (i.e., ".com", ".org", ".net").'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 105 | print(''); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 106 | print('Note that you must own the base domain, and it must use Route53 DNS.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 113 | print('Medplum sends transactional emails to users.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 114 | print('For example, emails to new users or for password reset.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 115 | print('Medplum will use the support email address to send these emails.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 116 | print('Note that you must verify the support email address in SES.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 120 | print('Medplum deploys a REST API for the backend services.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 126 | print('Medplum deploys a web application for the user interface.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 131 | print('Medplum deploys a storage service for file uploads.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 136 | print('Medplum uses an S3 bucket to store binary content such as file uploads.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 137 | print('Medplum will create a the S3 bucket as part of the CloudFormation stack.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 142 | print('Medplum API servers can be deployed in multiple availability zones.'); | CODE |
| HIGH⚡ | packages/cli/src/aws/init.ts | 143 | print('This provides redundancy and high availability.'); | CODE |
| 70 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …edplum-healthie-importer/src/healthie/provider.test.ts | 36 | phone_number: '555-0100', | CODE |
| LOW | …edplum-healthie-importer/src/healthie/provider.test.ts | 111 | expect(result.telecom?.[0]).toEqual({ system: 'phone', value: '555-0100' }); | CODE |
| LOW | …edplum-healthie-importer/src/healthie/provider.test.ts | 137 | const provider: HealthieProvider = { id: 'prov-4', email: 'test@test.com' }; | CODE |
| LOW | …edplum-healthie-importer/src/healthie/provider.test.ts | 145 | const provider: HealthieProvider = { id: 'prov-5', phone_number: '555-0000' }; | CODE |
| LOW | …plum-healthie-importer/src/healthie/medication.test.ts | 164 | const result = convertHealthieMedicationToFhir(medicationWithoutDosage, { display: 'John Doe' }); | CODE |
| LOW | …plum-healthie-importer/src/healthie/medication.test.ts | 175 | const result = convertHealthieMedicationToFhir(medicationWithoutComment, { display: 'John Doe' }); | CODE |
| LOW | …plum-healthie-importer/src/healthie/medication.test.ts | 186 | const result = convertHealthieMedicationToFhir(medicationWithoutCode, { display: 'John Doe' }); | CODE |
| LOW | …plum-healthie-importer/src/healthie/medication.test.ts | 197 | const result = convertHealthieMedicationToFhir(medicationWithoutName, { display: 'John Doe' }); | CODE |
| LOW | …plum-healthie-importer/src/healthie/medication.test.ts | 209 | const result = convertHealthieMedicationToFhir(medicationWithInvalidDosage, { display: 'John Doe' }); | CODE |
| LOW | …edplum-healthie-importer/src/healthie/coverage.test.ts | 125 | expect(result.subscriber).toEqual({ display: 'John Doe' }); | CODE |
| LOW | …medplum-healthie-importer/src/healthie/patient.test.ts | 54 | name: 'John Doe', | CODE |
| LOW | …medplum-healthie-importer/src/healthie/patient.test.ts | 62 | line1: '123 Main St', | CODE |
| LOW | examples/medplum-provider/src/utils/intake-form.test.ts | 11 | phone: { valueString: '555-5555' }, | CODE |
| LOW | …er/src/components/schedule/AppointmentDetails.test.tsx | 315 | actor: { reference: `Patient/${patientId}`, display: 'Jane Doe' }, | CODE |
| LOW | …er/src/components/schedule/AppointmentDetails.test.tsx | 351 | expect(screen.getByText('Jane Doe')).toBeInTheDocument(); | CODE |
| LOW | …vider/src/components/schedule/ScheduleDetails.test.tsx | 63 | { actor: { reference: 'Patient/123', display: 'John Doe' }, status: 'accepted' }, | CODE |
| LOW | …rovider/src/components/tasks/TaskDetailsModal.test.tsx | 79 | expect(screen.getByText('John Doe')).toBeInTheDocument(); | CODE |
| LOW | …-provider/src/components/tasks/TaskProperties.test.tsx | 171 | owner: { reference: 'Practitioner/prac-123', display: 'John Doe' }, | CODE |
| LOW | …-provider/src/components/tasks/TaskProperties.test.tsx | 177 | expect(screen.getByText('John Doe')).toBeInTheDocument(); | CODE |
| LOW | …/medplum-provider/src/components/fax/fax.utils.test.ts | 24 | expect(formatFaxNumber('555-1234')).toBe('555-1234'); | CODE |
| LOW | …plum-provider/src/components/fax/SendFaxModal.test.tsx | 105 | await typeFaxNumber('555-1234'); | CODE |
| LOW | examples/medplum-provider/src/pages/SignInPage.test.tsx | 73 | fireEvent.change(screen.getByLabelText('Email *'), { target: { value: 'admin@example.com' } }); | CODE |
| LOW | …plum-provider/src/pages/schedule/SchedulePage.test.tsx | 569 | { actor: { reference: 'Patient/patient-1', display: 'Jane Doe' }, status: 'accepted' }, | CODE |
| LOW | …plum-provider/src/pages/schedule/SchedulePage.test.tsx | 600 | await waitFor(() => expect(screen.getByText('Jane Doe')).toBeInTheDocument()); | CODE |
| LOW | …plum-provider/src/pages/schedule/SchedulePage.test.tsx | 602 | await user.click(screen.getByText('Jane Doe')); | CODE |
| LOW | …plum-provider/src/pages/schedule/SchedulePage.test.tsx | 622 | await waitFor(() => expect(screen.queryByText('Jane Doe')).not.toBeInTheDocument()); | CODE |
| LOW | …plum-provider/src/pages/spaces/PromptComposer.test.tsx | 219 | expect(textarea()).toHaveAttribute('placeholder', 'Start speaking—your transcribed words will appear here.'); | CODE |
| LOW | …um-demo-bots/src/resource-usage/resource-usage.test.ts | 38 | expect(emailArgs.to).toEqual(['admin@example.com', 'admin2@example.com']); | CODE |
| LOW | …medplum-demo-bots/src/resource-usage/resource-usage.ts | 8 | const REPORT_EMAILS = ['admin@example.com', 'admin2@example.com']; | CODE |
| LOW | examples/medplum-demo-bots/src/resource-usage/README.md | 33 | const REPORT_EMAIL = 'admin@example.com'; | CODE |
| LOW | …mples/medplum-demo-bots/src/vital/order-create.test.ts | 479 | value: 'test@test.com', | CODE |
| LOW | …mples/medplum-demo-bots/src/vital/order-create.test.ts | 521 | value: 'test@test.com', | CODE |
| LOW | …mples/medplum-demo-bots/src/vital/order-result.test.ts | 202 | line: ['123 Main St'], | CODE |
| LOW | …demo-bots/src/lab-integration/send-oru-message.test.ts | 61 | line: ['123 Main Street'], | CODE |
| LOW | …-integration/src/bots/sync-patient-from-photon.test.ts | 52 | name: { first: 'John', last: 'Doe', full: 'Jane Doe' }, | CODE |
| LOW | …-integration/src/bots/sync-patient-from-photon.test.ts | 55 | phone: '555-1234', | CODE |
| LOW | …-integration/src/bots/sync-patient-from-photon.test.ts | 150 | phone: '555-1234', | CODE |
| LOW | …-integration/src/bots/sync-patient-from-photon.test.ts | 153 | street1: '123 Main St', | CODE |
| LOW | …-integration/src/bots/sync-patient-from-photon.test.ts | 170 | { system: 'phone', value: '555-1234' }, | CODE |
| LOW | …-integration/src/bots/sync-patient-from-photon.test.ts | 175 | line: ['123 Main St'], | CODE |
| LOW | …-integration/src/bots/sync-patient-from-photon.test.ts | 260 | street1: '123 Main Street', | CODE |
| LOW | …ntegration/src/bots/test-data/order-event-test-data.ts | 301 | street1: '123 Main St', | CODE |
| LOW⚡ | examples/foomedical/src/pages/HomePage.tsx | 39 | 'Lorem ipsum at porta donec ultricies ut, arcu morbi amet arcu ornare, curabitur pharetra magna tempus', | CODE |
| LOW⚡ | examples/foomedical/src/pages/HomePage.tsx | 47 | 'Lorem ipsum at porta donec ultricies ut, arcu morbi amet arcu ornare, curabitur pharetra magna tempus', | CODE |
| LOW⚡ | examples/foomedical/src/pages/HomePage.tsx | 55 | 'Lorem ipsum at porta donec ultricies ut, arcu morbi amet arcu ornare, curabitur pharetra magna tempus', | CODE |
| LOW⚡ | examples/foomedical/src/pages/HomePage.tsx | 63 | 'Lorem ipsum at porta donec ultricies ut, arcu morbi amet arcu ornare, curabitur pharetra magna tempus', | CODE |
| LOW⚡ | examples/foomedical/src/pages/HomePage.tsx | 170 | Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste | CODE |
| LOW⚡ | examples/foomedical/src/pages/HomePage.tsx | 170 | Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste | CODE |
| LOW⚡ | examples/foomedical/src/pages/HomePage.tsx | 171 | dolor cupiditate blanditiis ratione. Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores | CODE |
| LOW⚡ | examples/foomedical/src/pages/HomePage.tsx | 171 | dolor cupiditate blanditiis ratione. Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores | CODE |
| LOW⚡ | examples/foomedical/src/pages/HomePage.tsx | 193 | Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, | CODE |
| LOW⚡ | examples/foomedical/src/pages/HomePage.tsx | 193 | Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, | CODE |
| LOW⚡ | examples/foomedical/src/pages/HomePage.tsx | 194 | iste dolor cupiditate blanditiis ratione. Lorem ipsum, dolor sit amet consectetur adipisicing elit. | CODE |
| LOW⚡ | examples/foomedical/src/pages/HomePage.tsx | 194 | iste dolor cupiditate blanditiis ratione. Lorem ipsum, dolor sit amet consectetur adipisicing elit. | CODE |
| LOW⚡ | examples/foomedical/src/pages/landing/index.tsx | 18 | 'Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor | CODE |
| LOW⚡ | examples/foomedical/src/pages/landing/index.tsx | 18 | 'Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor | CODE |
| LOW⚡ | examples/foomedical/src/pages/landing/index.tsx | 23 | 'Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor | CODE |
| LOW⚡ | examples/foomedical/src/pages/landing/index.tsx | 23 | 'Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor | CODE |
| LOW⚡ | examples/foomedical/src/pages/landing/index.tsx | 28 | 'Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor | CODE |
| LOW⚡ | examples/foomedical/src/pages/landing/index.tsx | 28 | 'Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor | CODE |
| 215 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …medplum-healthie-importer/src/healthie/patient.test.ts | 203 | // Step 1: Fetch all patient IDs without filter | COMMENT |
| LOW⚡ | …medplum-healthie-importer/src/healthie/patient.test.ts | 211 | // Step 2: Get patient data with timestamps to find a middle point | COMMENT |
| LOW⚡ | …medplum-healthie-importer/src/healthie/patient.test.ts | 220 | // Step 3: Find a timestamp in the middle of the results | COMMENT |
| LOW⚡ | …medplum-healthie-importer/src/healthie/patient.test.ts | 228 | // Step 4: Re-run with the since filter | COMMENT |
| LOW⚡ | …medplum-healthie-importer/src/healthie/patient.test.ts | 233 | // Step 5: Verify the filtered results are smaller or equal to the original | COMMENT |
| LOW | …les/medplum-multilingual-demo/src/hooks/useDemoData.ts | 59 | // Step 1: Patient + Questionnaire via transaction with ifNoneExist. | COMMENT |
| LOW | …les/medplum-multilingual-demo/src/hooks/useDemoData.ts | 106 | // Step 2: Conditions — one conditional-create per condition code. | COMMENT |
| LOW | examples/medplum-local-k8s/cleanup-local.sh | 6 | # Step 1: Clean up Fission functions and packages (if any) | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/cleanup-local.sh | 32 | # Step 2: Uninstall Helm release | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/cleanup-local.sh | 36 | # Step 3: Delete Medplum app | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/cleanup-local.sh | 40 | # Step 4: Delete databases | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/cleanup-local.sh | 44 | # Step 5: Clean up Fission RBAC permissions | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/cleanup-local.sh | 48 | # Step 6: Delete Medplum namespace | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/cleanup-local.sh | 52 | # Step 7: Ask about Fission cleanup | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 13 | # Step 1: Create namespace | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 17 | # Step 2: Install Fission (following Medplum's recommended approach) | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 77 | # Step 4: Create Fission RBAC permissions | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 81 | # Step 5: Deploy databases | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 85 | # Step 6: Wait for databases to be ready | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 90 | # Step 7: Test DNS resolution (robust version) | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 101 | # Step 8: Deploy Medplum server | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 107 | # Step 9: Wait for Medplum server to be ready | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 111 | # Step 10: Deploy Medplum app | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 115 | # Step 11: Wait for Medplum app to be ready | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 119 | # Step 12: Verify Fission integration | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 127 | # Step 13: Create default Fission Node.js environment | COMMENT |
| LOW | examples/medplum-local-k8s/deploy-local.sh | 52 | # Step 3: Wait for Fission to be ready | COMMENT |
| LOW | examples/medplum-local-k8s/deploy-local.sh | 143 | # Step 14: Get Fission router ClusterIP for configuration | COMMENT |
| LOW | …amples/medplum-mso-demo/src/pages/UploadBundlePage.tsx | 32 | // Step 1: Create the patients | COMMENT |
| LOW | examples/medplum-efax-demo/README.md | 56 | // Step 1: Upload the file (creates a Binary resource) and persist it as a DocumentReference | COMMENT |
| LOW | examples/medplum-efax-demo/README.md | 70 | // Step 2: Create the recipient Organization | COMMENT |
| LOW | examples/medplum-efax-demo/README.md | 77 | // Step 3: Create the Communication | COMMENT |
| LOW | examples/medplum-efax-demo/README.md | 90 | // Step 4: Call the $send-efax operation | COMMENT |
| LOW | examples/medplum-efax-demo/src/pages/SendFaxPage.tsx | 59 | // Step 1: Upload the file and persist it as a DocumentReference (creates a Binary | COMMENT |
| LOW⚡ | examples/medplum-efax-demo/src/pages/SendFaxPage.tsx | 75 | // Step 2: Create the recipient Organization | COMMENT |
| LOW⚡ | examples/medplum-efax-demo/src/pages/SendFaxPage.tsx | 82 | // Step 3: Create the Communication, referencing the DocumentReference via | COMMENT |
| LOW | examples/medplum-efax-demo/src/pages/SendFaxPage.tsx | 105 | // Step 4: Call the $send-efax operation | COMMENT |
| LOW | packages/core/src/subscriptions/index.test.ts | 1180 | // Step 1: Add criteria and verify subscription works | COMMENT |
| LOW | packages/core/src/subscriptions/index.test.ts | 1208 | // Step 2: Remove criteria and close WebSocket (simulating component unmount) | COMMENT |
| LOW | packages/core/src/subscriptions/index.test.ts | 1231 | // Step 3: Set up a new WebSocket server and add criteria again (simulating component remount) | COMMENT |
| LOW | packages/core/src/subscriptions/index.test.ts | 1270 | // Step 4: Verify we can receive messages on the new subscription | COMMENT |
| LOW | packages/core/src/subscriptions/index.ts | 484 | // Step 1: Ensure a Subscription resource exists | COMMENT |
| LOW | packages/core/src/subscriptions/index.ts | 502 | // Step 2: Get a binding token | COMMENT |
| LOW | packages/core/src/subscriptions/index.ts | 521 | // Step 3: Verify the operation is still valid after all async work | COMMENT |
| LOW⚡ | packages/server/src/test.setup.ts | 733 | // Step 1: Generate CSR | COMMENT |
| LOW⚡ | packages/server/src/test.setup.ts | 738 | // Step 2: Sign CSR with CA | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 176 | // Step 1: Create a bot via admin endpoint (auto-creates ProjectMembership) | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 180 | // Step 2: Deploy the bot | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 268 | // Step 1: Create a bot via admin endpoint (auto-creates ProjectMembership) | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 272 | // Step 2: Deploy the bot | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 302 | // Step 3: Simulate releasing a new version of the lambda layer | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 311 | // Step 4: Simulate an error when updating the code | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 352 | // Step 1: Create a bot with no timeout via admin endpoint (auto-creates ProjectMembership) | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 355 | // Step 2: Deploy the bot without timeout ... check that default timeout was set on lambda | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 523 | // Step 1: Create a bot via admin endpoint (auto-creates ProjectMembership) | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 527 | // Step 2: Initial deploy creates the lambda | COMMENT |
| LOW | packages/server/src/cloud/aws/deploy.test.ts | 221 | // Step 3: Deploy again to trigger the update path | COMMENT |
| LOW | packages/server/src/cloud/aws/deploy.test.ts | 328 | // Step 5: Deploy again to trigger the update path | COMMENT |
| LOW | packages/server/src/cloud/aws/deploy.test.ts | 377 | // Step 3: Update bot to have to have a timeout | COMMENT |
| LOW | packages/server/src/cloud/aws/deploy.test.ts | 388 | // Step 4: Deploy bot again | COMMENT |
| 99 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …medplum-healthie-importer/src/healthie/patient.test.ts | 203 | // Step 1: Fetch all patient IDs without filter | COMMENT |
| LOW⚡ | …medplum-healthie-importer/src/healthie/patient.test.ts | 211 | // Step 2: Get patient data with timestamps to find a middle point | COMMENT |
| LOW⚡ | …medplum-healthie-importer/src/healthie/patient.test.ts | 220 | // Step 3: Find a timestamp in the middle of the results | COMMENT |
| LOW⚡ | …medplum-healthie-importer/src/healthie/patient.test.ts | 228 | // Step 4: Re-run with the since filter | COMMENT |
| LOW⚡ | …medplum-healthie-importer/src/healthie/patient.test.ts | 233 | // Step 5: Verify the filtered results are smaller or equal to the original | COMMENT |
| LOW | …les/medplum-multilingual-demo/src/hooks/useDemoData.ts | 59 | // Step 1: Patient + Questionnaire via transaction with ifNoneExist. | COMMENT |
| LOW | …les/medplum-multilingual-demo/src/hooks/useDemoData.ts | 106 | // Step 2: Conditions — one conditional-create per condition code. | COMMENT |
| LOW | examples/medplum-local-k8s/cleanup-local.sh | 6 | # Step 1: Clean up Fission functions and packages (if any) | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/cleanup-local.sh | 32 | # Step 2: Uninstall Helm release | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/cleanup-local.sh | 36 | # Step 3: Delete Medplum app | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/cleanup-local.sh | 40 | # Step 4: Delete databases | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/cleanup-local.sh | 44 | # Step 5: Clean up Fission RBAC permissions | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/cleanup-local.sh | 48 | # Step 6: Delete Medplum namespace | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/cleanup-local.sh | 52 | # Step 7: Ask about Fission cleanup | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 13 | # Step 1: Create namespace | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 17 | # Step 2: Install Fission (following Medplum's recommended approach) | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 77 | # Step 4: Create Fission RBAC permissions | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 81 | # Step 5: Deploy databases | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 85 | # Step 6: Wait for databases to be ready | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 90 | # Step 7: Test DNS resolution (robust version) | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 101 | # Step 8: Deploy Medplum server | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 107 | # Step 9: Wait for Medplum server to be ready | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 111 | # Step 10: Deploy Medplum app | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 115 | # Step 11: Wait for Medplum app to be ready | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 119 | # Step 12: Verify Fission integration | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 127 | # Step 13: Create default Fission Node.js environment | COMMENT |
| LOW | examples/medplum-local-k8s/deploy-local.sh | 52 | # Step 3: Wait for Fission to be ready | COMMENT |
| LOW | examples/medplum-local-k8s/deploy-local.sh | 143 | # Step 14: Get Fission router ClusterIP for configuration | COMMENT |
| LOW | …amples/medplum-mso-demo/src/pages/UploadBundlePage.tsx | 32 | // Step 1: Create the patients | COMMENT |
| LOW | examples/medplum-efax-demo/src/pages/SendFaxPage.tsx | 59 | // Step 1: Upload the file and persist it as a DocumentReference (creates a Binary | COMMENT |
| LOW⚡ | examples/medplum-efax-demo/src/pages/SendFaxPage.tsx | 75 | // Step 2: Create the recipient Organization | COMMENT |
| LOW⚡ | examples/medplum-efax-demo/src/pages/SendFaxPage.tsx | 82 | // Step 3: Create the Communication, referencing the DocumentReference via | COMMENT |
| LOW | examples/medplum-efax-demo/src/pages/SendFaxPage.tsx | 105 | // Step 4: Call the $send-efax operation | COMMENT |
| LOW | packages/core/src/subscriptions/index.test.ts | 1180 | // Step 1: Add criteria and verify subscription works | COMMENT |
| LOW | packages/core/src/subscriptions/index.test.ts | 1208 | // Step 2: Remove criteria and close WebSocket (simulating component unmount) | COMMENT |
| LOW | packages/core/src/subscriptions/index.test.ts | 1231 | // Step 3: Set up a new WebSocket server and add criteria again (simulating component remount) | COMMENT |
| LOW | packages/core/src/subscriptions/index.test.ts | 1270 | // Step 4: Verify we can receive messages on the new subscription | COMMENT |
| LOW | packages/core/src/subscriptions/index.ts | 484 | // Step 1: Ensure a Subscription resource exists | COMMENT |
| LOW | packages/core/src/subscriptions/index.ts | 502 | // Step 2: Get a binding token | COMMENT |
| LOW | packages/core/src/subscriptions/index.ts | 521 | // Step 3: Verify the operation is still valid after all async work | COMMENT |
| LOW | packages/core/src/fhirpath/utils.ts | 401 | // We need to check if both `code` and `system` are equivalent. | COMMENT |
| LOW⚡ | packages/server/src/test.setup.ts | 733 | // Step 1: Generate CSR | COMMENT |
| LOW⚡ | packages/server/src/test.setup.ts | 738 | // Step 2: Sign CSR with CA | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 176 | // Step 1: Create a bot via admin endpoint (auto-creates ProjectMembership) | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 180 | // Step 2: Deploy the bot | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 268 | // Step 1: Create a bot via admin endpoint (auto-creates ProjectMembership) | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 272 | // Step 2: Deploy the bot | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 302 | // Step 3: Simulate releasing a new version of the lambda layer | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 311 | // Step 4: Simulate an error when updating the code | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 352 | // Step 1: Create a bot with no timeout via admin endpoint (auto-creates ProjectMembership) | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 355 | // Step 2: Deploy the bot without timeout ... check that default timeout was set on lambda | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 523 | // Step 1: Create a bot via admin endpoint (auto-creates ProjectMembership) | COMMENT |
| LOW⚡ | packages/server/src/cloud/aws/deploy.test.ts | 527 | // Step 2: Initial deploy creates the lambda | COMMENT |
| LOW | packages/server/src/cloud/aws/deploy.test.ts | 221 | // Step 3: Deploy again to trigger the update path | COMMENT |
| LOW | packages/server/src/cloud/aws/deploy.test.ts | 328 | // Step 5: Deploy again to trigger the update path | COMMENT |
| LOW | packages/server/src/cloud/aws/deploy.test.ts | 377 | // Step 3: Update bot to have to have a timeout | COMMENT |
| LOW | packages/server/src/cloud/aws/deploy.test.ts | 388 | // Step 4: Deploy bot again | COMMENT |
| LOW | packages/server/src/cloud/aws/deploy.test.ts | 432 | // Step 5: Remove timeout | COMMENT |
| LOW | packages/server/src/cloud/aws/deploy.test.ts | 443 | // Step 6: Deploy bot for final time | COMMENT |
| LOW | packages/server/src/cloud/aws/deploy.test.ts | 548 | // Step 3: Redeploy triggers cleanup | COMMENT |
| 49 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | terraform/gcp/outputs.tf | 1 | # This file defines output variables for the Terraform configuration. | COMMENT |
| MEDIUM | terraform/gcp/.terraform.lock.hcl | 1 | # This file is maintained automatically by "terraform init". | COMMENT |
| MEDIUM⚡ | examples/medplum-local-k8s/deploy-local.sh | 21 | # Define the namespace for Fission | COMMENT |
| MEDIUM⚡ | examples/medplum-local-k8s/deploy-local.sh | 24 | # Create the Fission namespace | COMMENT |
| MEDIUM | scripts/deploy-bot-layer.sh | 20 | # Create a temporary directory for the layer | COMMENT |
| MEDIUM | scripts/deploy-bot-layer.sh | 42 | # Create the zip file | COMMENT |
| MEDIUM | scripts/deploy-introspection-schema.sh | 50 | # Create an invlidation file | COMMENT |
| MEDIUM | scripts/prune-branches.sh | 20 | # Create a new commit object from the tree of the current branch and the merge base, and compare it to main | COMMENT |
| MEDIUM | scripts/build-deb.sh | 57 | # Create the server config | COMMENT |
| MEDIUM | scripts/build-deb.sh | 62 | # Create the data directory | COMMENT |
| MEDIUM | scripts/build-deb.sh | 75 | # Create the systemd service definition | COMMENT |
| MEDIUM | scripts/build-deb.sh | 78 | # Create the service file | COMMENT |
| MEDIUM | scripts/build-deb.sh | 97 | # Create the nginx sites-available directory | COMMENT |
| MEDIUM | scripts/build-deb.sh | 100 | # Create the app site configuration | COMMENT |
| MEDIUM | scripts/build-deb.sh | 150 | # Create the server site configuration | COMMENT |
| MEDIUM | scripts/build-deb.sh | 190 | # Create the Debian template variables | COMMENT |
| MEDIUM | scripts/build-deb.sh | 218 | # Create the Debian config script | COMMENT |
| MEDIUM | scripts/build-deb.sh | 237 | # Create the Debian control file | COMMENT |
| MEDIUM | scripts/build-deb.sh | 259 | # Create the Debian post-install script | COMMENT |
| MEDIUM | scripts/build-deb.sh | 307 | # Create the Medplum user | COMMENT |
| MEDIUM | scripts/build-deb.sh | 326 | # Create the Debian pre-remove script | COMMENT |
| MEDIUM | packages/examples/src/graphql/mutations.ts | 10 | # Define the fields for the resource being created | COMMENT |
| MEDIUM | packages/examples/src/graphql/mutations.ts | 56 | # Define the fields for the resource being created | COMMENT |
| MEDIUM | packages/examples/src/graphql/mutations.ts | 83 | # Define the fields for the resource being created, and alias as "newPatient" | COMMENT |
| MEDIUM | packages/examples/src/graphql/mutations.ts | 129 | # Define the fields for the resource being created, and alias as "newPatient" | COMMENT |
| MEDIUM | packages/examples/src/graphql/mutations.ts | 205 | # Define the elements for the updated resources. Note that this will *overwrite* the entire resource. | COMMENT |
| MEDIUM | packages/examples/src/graphql/mutations.ts | 256 | # Define the elements for the updated resources. Note that this will *overwrite* the entire resource. | COMMENT |
| MEDIUM | packages/examples/src/api/fhir/operations/bulk-fhir.py | 108 | # Create a new connection to the host specified in the URL | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | terraform/gcp/outputs.tf | 1 | # This file defines output variables for the Terraform configuration. | COMMENT |
| LOW | terraform/gcp/service-accounts.tf | 1 | # This module sets up service accounts for the project and assigns specific roles to them. | COMMENT |
| LOW | terraform/gcp/cloud-sql.tf | 1 | # This module configures a PostgreSQL database instance on Google Cloud SQL. | COMMENT |
| LOW | terraform/gcp/cdn.tf | 1 | # This module sets up a CDN-enabled external HTTP(S) load balancer on Google Cloud Platform. | COMMENT |
| LOW | terraform/gcp/redis.tf | 1 | # This module sets up a Redis instance using Google Cloud's Memorystore service. | COMMENT |
| LOW | terraform/gcp/backend.tf | 1 | # This block serves as a technical illustration of configuring a Google Cloud Storage (GCS) backend for Terraform state | COMMENT |
| LOW | charts/values.yaml | 1 | # Default values for medplum. | COMMENT |
| LOW | examples/medplum-multilingual-demo/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | …les/medplum-client-external-idp-demo/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | examples/medplum-task-demo/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | …medplum-websocket-subscriptions-demo/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | examples/medplum-provider/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | …ovider/src/components/meds/quantity-qualifiers.test.ts | 101 | test('buildQualifierMatcher prefers dose-form keywords over strength units regardless of catalog name length', () => { | COMMENT |
| LOW | examples/medplum-demo-bots/src/textract-bot.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | examples/medplum-eligibility-demo/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | examples/medplum-photon-integration/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | examples/medplum-patient-intake-demo/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | examples/medplum-mso-demo/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | examples/medplum-smart-on-fhir-demo/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | examples/medplum-questionnaire-hooks/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | examples/medplum-health-gorilla-demo/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | examples/medplum-fhircast-demo/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | examples/medplum-hello-world/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | examples/foomedical/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | examples/medplum-valueset-selector/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | examples/medplum-efax-demo/src/vite-env.d.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | scripts/set-bot-env.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/upgrade.sh | 81 | echo "Last completed step: $LAST_STEP" | COMMENT |
| LOW | scripts/upgrade.sh | 101 | # otplib - version 13+ requires ESM, holding back until server supports ESM | COMMENT |
| LOW | packages/core/src/search/ir.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | packages/core/src/fhirpath/utils.ts | 121 | COMMENT | |
| LOW | …act-hooks/src/useCachedBinaryUrl/useCachedBinaryUrl.ts | 1 | // SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors | COMMENT |
| LOW | …s/react-hooks/src/useResourceBoard/useResourceBoard.ts | 121 | // Latest-ref pattern: expose the freshest options/callbacks to async work (executeLoad) | COMMENT |
| LOW | …hooks/src/useQuestionnaireForm/useQuestionnaireForm.ts | 21 | QUESTIONNAIRE_ITEM_CONTROL_URL, | COMMENT |
| LOW | packages/graphiql/src/index.tsx | 21 | # high-quality compliant applications. Medplum includes a FHIR server, | COMMENT |
| LOW | packages/server/src/oauth/auth-strategies.test.ts | 21 | import { loadTestConfig } from '../config/loader'; | COMMENT |
| LOW | packages/server/src/auth/mfa.test.ts | 2121 | // | COMMENT |
| LOW | packages/server/src/auth/mfa.test.ts | 2281 | .type('json') | COMMENT |
| LOW | packages/server/src/workers/subscription.ts | 241 | resource: Resource, | COMMENT |
| LOW | packages/server/src/fhir/operations/utils/find.test.ts | 221 | { start: new Date('2025-11-30T18:30:00Z'), end: new Date('2025-11-30T18:40:00Z') }, | COMMENT |
| LOW | packages/server/src/fhir/operations/utils/find.test.ts | 241 | // consistency in scheduling. | COMMENT |
| LOW | packages/agent/DURABLE_QUEUE_ARCHITECTURE.md | 741 | // Bot/server-leg failure: permanent 4xx → rejected (never retried); | COMMENT |
| LOW | packages/agent/src/app.ts | 181 | COMMENT | |
| LOW | packages/agent/src/app.ts | 701 | // Start the dispatch-lease loop — it'll attempt acquisition immediately and, | COMMENT |
| LOW | packages/agent/src/app.ts | 1741 | await this.medplum.refreshIfExpired(); | COMMENT |
| LOW | packages/agent/src/hl7.ts | 1061 | receivedAt: number; | COMMENT |
| LOW | packages/agent/src/queue/schema.ts | 161 | // `logicalChannelKey` spec (a set of HL7 field paths); the default '' means one | COMMENT |
| LOW | packages/agent/src/queue/queries.ts | 141 | * `idx_inbound_channel_state_id`. [index-guarded] | COMMENT |
| LOW | packages/agent/src/queue/durable-queue.ts | 141 | private closed = false; | COMMENT |
| LOW | packages/agent/src/queue/durable-queue.ts | 161 | // and persisting inbound traffic but does not dispatch. | COMMENT |
| LOW | packages/agent/src/queue/durable-queue.ts | 181 | COMMENT | |
| LOW | packages/agent/src/queue/worker.test.ts | 481 | expect(warning).toContain('socket gone'); | COMMENT |
| LOW | packages/agent/src/queue/integration.test.ts | 2021 | await roundTrip('shift_jis', 'SJIS_0001', 'ヤマダ^タロウ', 'queue-sjis.sqlite'); | COMMENT |
| LOW | packages/agent/src/queue/integration.test.ts | 2341 | COMMENT | |
| LOW | packages/agent/src/queue/integration.test.ts | 2501 | // the leader calls App.stop(), which drains its workers (settling in-flight rows to | COMMENT |
| LOW | packages/agent/src/queue/integration.test.ts | 2721 | COMMENT | |
| LOW | packages/agent/src/queue/dispatcher.ts | 201 | const key = this.computeKey(row.originalMessage); | COMMENT |
| LOW | …docs/src/components/landing/SolutionsHeroAnimation.tsx | 21 | // (solutions-content.ts), so the hero matches what the page highlights; when a | COMMENT |
| LOW | packages/ccda/src/templates.ts | 81 | }, | COMMENT |
| LOW | packages/ccda/src/templates.ts | 101 | // M) USCDI Data Class/Element: Assessment and Plan of Treatment: | COMMENT |
| 20 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | examples/medplum-local-k8s/deploy-local.sh | 90 | # Step 7: Test DNS resolution (robust version) | COMMENT |
| MEDIUM | packages/cdk/src/backend.ts | 199 | // Instances with attached NVMe SSD (db.*d* instance classes) should utilize I/O optimized storage | COMMENT |
| MEDIUM | …ages/core/src/typeschema/__test__/us-core-patient.json | 1 | {"resourceType":"StructureDefinition","id":"us-core-patient","text":{"status":"extensions","div":"<div xmlns=\"http://ww | CODE |
| MEDIUM | …ages/core/src/typeschema/__test__/us-core-patient.json | 1 | {"resourceType":"StructureDefinition","id":"us-core-patient","text":{"status":"extensions","div":"<div xmlns=\"http://ww | CODE |
| MEDIUM | packages/core/src/typeschema/__test__/base-patient.json | 1 | {"resourceType":"StructureDefinition","id":"Patient","meta":{"lastUpdated":"2023-03-26T15:21:02.749+11:00"},"text":{"sta | CODE |
| MEDIUM | packages/core/src/typeschema/__test__/base-patient.json | 1 | {"resourceType":"StructureDefinition","id":"Patient","meta":{"lastUpdated":"2023-03-26T15:21:02.749+11:00"},"text":{"sta | CODE |
| MEDIUM⚡ | …re/src/typeschema/__test__/us-core-blood-pressure.json | 1 | {"resourceType":"StructureDefinition","id":"us-core-blood-pressure","text":{"status":"extensions","div":"<div xmlns=\"ht | CODE |
| MEDIUM⚡ | …re/src/typeschema/__test__/us-core-blood-pressure.json | 1 | {"resourceType":"StructureDefinition","id":"us-core-blood-pressure","text":{"status":"extensions","div":"<div xmlns=\"ht | CODE |
| MEDIUM⚡ | …/core/src/typeschema/__test__/body-weight-profile.json | 1 | {"resourceType":"StructureDefinition","id":"bodyweight","text":{"status":"generated","div":"<div xmlns=\"http://www.w3.o | CODE |
| MEDIUM⚡ | …/core/src/typeschema/__test__/body-weight-profile.json | 1 | {"resourceType":"StructureDefinition","id":"bodyweight","text":{"status":"generated","div":"<div xmlns=\"http://www.w3.o | CODE |
| MEDIUM | …core/src/typeschema/__test__/capability-statement.json | 1 | {"resourceType":"StructureDefinition","id":"CapabilityStatement","meta":{"lastUpdated":"2019-11-01T09:29:23.356+11:00"}, | CODE |
| MEDIUM | …core/src/typeschema/__test__/capability-statement.json | 1 | {"resourceType":"StructureDefinition","id":"CapabilityStatement","meta":{"lastUpdated":"2019-11-01T09:29:23.356+11:00"}, | CODE |
| MEDIUM | …re/src/typeschema/__test__/us-core-smoking-status.json | 6 | "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\ | CODE |
| MEDIUM | packages/core/src/fhirpath/utils.ts | 403 | // Essentially they must both be `undefined` or both the same. | COMMENT |
| MEDIUM | …/src/fhir/r4/testing/uscore-v7.0.0-smoking-status.json | 6 | "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\ | CODE |
| MEDIUM⚡ | …hir/r4/testing/uscore-v5.0.1-structuredefinitions.json | 1 | [{"resourceType":"StructureDefinition","id":"us-core-patient","url":"http://hl7.org/fhir/us/core/StructureDefinition/us- | CODE |
| MEDIUM⚡ | …hir/r4/testing/uscore-v5.0.1-structuredefinitions.json | 1 | [{"resourceType":"StructureDefinition","id":"us-core-patient","url":"http://hl7.org/fhir/us/core/StructureDefinition/us- | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | …re/src/typeschema/__test__/us-core-blood-pressure.json | 1 | {"resourceType":"StructureDefinition","id":"us-core-blood-pressure","text":{"status":"extensions","div":"<div xmlns=\"ht | CODE |
| HIGH⚡ | …/core/src/typeschema/__test__/body-weight-profile.json | 1 | {"resourceType":"StructureDefinition","id":"bodyweight","text":{"status":"generated","div":"<div xmlns=\"http://www.w3.o | CODE |
| HIGH⚡ | …hir/r4/testing/uscore-v5.0.1-structuredefinitions.json | 1 | [{"resourceType":"StructureDefinition","id":"us-core-patient","url":"http://hl7.org/fhir/us/core/StructureDefinition/us- | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/medplum-local-k8s/status-local.sh | 5 | # Check if namespace exists | COMMENT |
| LOW | examples/medplum-local-k8s/status-local.sh | 19 | # Check if Medplum is responding | COMMENT |
| LOW | examples/medplum-local-k8s/status-local.sh | 36 | # Check if Fission namespace exists | COMMENT |
| LOW⚡ | examples/medplum-local-k8s/deploy-local.sh | 19 | # Check if Fission is already installed | COMMENT |
| LOW | examples/medplum-local-k8s/deploy-local.sh | 41 | # Check if installation was successful | COMMENT |
| LOW | scripts/prepare-release.sh | 30 | # Check if a new requiredBefore entry has been added to the data migration manifest | COMMENT |
| LOW | scripts/prepare-release.sh | 47 | # Check if a new version is provided as a command line argument and override if present | COMMENT |
| LOW | scripts/prune-branches.sh | 5 | # Check if the --dryrun option is passed | COMMENT |
| LOW | scripts/build-deb.sh | 9 | # Check if dpkg-deb is available | COMMENT |
| LOW | scripts/update-example-changes.sh | 24 | # Check if the listening repo exists | COMMENT |
| LOW | scripts/upgrade.sh | 131 | # Check if there is a PR for this branch already | COMMENT |
| LOW | .github/auto_assign.yml | 7 | # Set addAssignees to 'author' to set the PR creator as the assignee. | COMMENT |
| LOW | .github/workflows/publish-meta.yml | 63 | # Check if asset already exists in S3 (idempotent check) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | terraform/gcp/outputs.tf | 5 | # Usage: | COMMENT |
| LOW | terraform/gcp/project-services.tf | 3 | # Usage: | COMMENT |
| LOW | terraform/gcp/service-accounts.tf | 4 | # Usage: | COMMENT |
| LOW | terraform/gcp/cloud-sql.tf | 14 | # Usage: | COMMENT |
| LOW | terraform/gcp/network.tf | 4 | # Usage: | COMMENT |
| LOW | terraform/gcp/cdn.tf | 12 | # Usage: | COMMENT |
| LOW | terraform/gcp/gke.tf | 4 | # Usage: | COMMENT |
| LOW | terraform/gcp/redis.tf | 9 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/docs/docs/decision-guides/intake.md | 20 | 4. **[Define completion and follow-up](#completion-and-follow-up).** Decide whether intake needs orchestration or encoun | CODE |
| MEDIUM | packages/docs/docs/decision-guides/intake.md | 47 | *Why: drives whether intake creates or updates a patient record, when responses get tied to a patient, and whether intak | COMMENT |
| MEDIUM | packages/docs/docs/decision-guides/intake.md | 261 | ### Does intake need orchestration and encounter linkage? | COMMENT |
| MEDIUM | packages/docs/docs/decision-guides/intake.md | 301 | | Composite completion | Single `Task` per Encounter with `businessStatus` advancing through extraction, eligibility, co | CODE |
| MEDIUM | packages/docs/docs/integration/hl7-interfacing/index.md | 59 | Some organizations will enable HL7 messages dropped as files onto an SFTP server. The Medplum bot framework supports an | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | packages/docs/docs/self-hosting/sendgrid.md | 44 | "password": "YOUR_API_KEY" | CODE |
| HIGH | packages/docs/docs/self-hosting/datadog.md | 25 | "DD_API_KEY": "YOUR_API_KEY", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | examples/medplum-provider/src/components/utils.ts | 14 | * This is a crude approximation for demonstration purposes. | COMMENT |
| MEDIUM⚡ | …hir/r4/testing/uscore-v5.0.1-structuredefinitions.json | 1 | [{"resourceType":"StructureDefinition","id":"us-core-patient","url":"http://hl7.org/fhir/us/core/StructureDefinition/us- | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/agent/src/queue/dispatcher.ts | 200 | // ── Partition gate (await-free) ──────────────────────────────────── | COMMENT |
| MEDIUM | packages/agent/src/queue/dispatcher.ts | 216 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .agents/skills/comment-compactor/SKILL.md | 145 | | Reviewer-facing | `// as requested, this is now extracted into a helper` | Delete | CODE |