The most popular open source electronic health records and medical practice management solution.
This report summarizes scanner evidence for openemr/openemr, a PHP project with 5,515 GitHub stars. SynthScan examined 2,069,045 lines of code across 6527 source files, recording 8420 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 5.5 (Moderate 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.
Can maintainers explain intent, assumptions, and trade-offs? 7865 finding(s).
Are imports declared and package/API names verified? 129 finding(s).
Are wrappers, guards, and repeated structures necessary? 6645 finding(s).
Which changes need focused human review? 8420 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 8420 distinct pattern matches across 18 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 | sql_upgrade.php | 281 | function startVersionCheckIfNotRunning() { | CODE |
| LOW | README-Isolated-Testing.md | 95 | public function testProcessReturnsTransformedData(): void | CODE |
| LOW | interface/eRx_xml.php | 52 | function stripSpecialCharacterFacility($str) | CODE |
| LOW | interface/eRx_xml.php | 900 | function PatientFreeformHealthplans($doc, $r, $pid): void | CODE |
| LOW | interface/eRx_xml.php | 933 | function PrescriptionRenewalResponse($doc, $r, $pid): void | CODE |
| LOW | interface/eRxXMLBuilder.php | 195 | public function getDemographicsCheckMessages() | CODE |
| LOW | interface/eRxXMLBuilder.php | 220 | public function createElementTextFieldEmpty($name, $value, $validationText) | CODE |
| LOW | interface/eRxXMLBuilder.php | 227 | public function createElementTextDemographicsCheck($name, $value, $validationText) | CODE |
| LOW | interface/eRxXMLBuilder.php | 488 | public function getLicensedPrescriberName($user, $prescriberType, $prefix = false) | CODE |
| LOW | interface/eRxXMLBuilder.php | 626 | public function getPatientCharacteristics($patient) | CODE |
| LOW | interface/eRxXMLBuilder.php | 669 | public function getPatientFreeformHealthplans($patientId): array | CODE |
| LOW | interface/eRxXMLBuilder.php | 686 | public function getPatientFreeformAllergy($patientId): array | CODE |
| LOW | interface/eRxPage.php | 164 | public function checkForMissingExtensions(): array | CODE |
| LOW | interface/eRxSOAP.php | 323 | public function updatePatientImportStatus($status) | CODE |
| LOW | interface/eRxSOAP.php | 369 | public function initializePatientInformationRequester() | CODE |
| LOW | interface/eRxSOAP.php | 456 | public function getPatientFreeFormAllergyHistory() | CODE |
| LOW | interface/eRxSOAP.php | 559 | public function updatePatientAllergyEndDate($allergyArray) | CODE |
| LOW | interface/eRxStore.php | 105 | public function getPatientVitalsByPatientId($patientId): array | CODE |
| LOW | interface/eRxStore.php | 128 | public function getPatientHealthplansByPatientId($patientId) | CODE |
| LOW | interface/eRxStore.php | 148 | public function getPatientAllergiesByPatientId($patientId) | CODE |
| LOW | interface/eRxStore.php | 167 | public function getPatientDiagnosisByPatientId($patientId) | CODE |
| LOW | interface/eRxStore.php | 231 | public function updatePrescriptionsActiveByPatientId($patientId, $active = 0) | CODE |
| LOW | interface/eRxStore.php | 245 | public function updatePrescriptionsUploadActiveByPatientIdPrescriptionId($upload, $active, $patientId, $prescription | CODE |
| LOW | interface/eRxStore.php | 290 | public function selectMedicationsNotUploadedByPatientId($patientId, $uploadActive, $limit) | CODE |
| LOW | interface/eRxStore.php | 314 | public function selectPrescriptionIdsNotUploadedByPatientId($patientId, $uploadActive, $limit) | CODE |
| LOW | interface/eRxStore.php | 427 | public function selectPrescriptionIdByGuidPatientId($prescriptionGuid, $patientId) | CODE |
| LOW | interface/eRxStore.php | 573 | public function selectAllergyErxSourceByPatientIdName($patientId, $name) | CODE |
| LOW | interface/eRxStore.php | 638 | public function updateAllergyOutcomeExternalIdByPatientIdName($outcome, $externalId, $patientId, $name) | CODE |
| LOW | interface/eRxStore.php | 663 | public function updateAllergyOutcomeByPatientIdExternalIdName($outcome, $patientId, $externalId, $name) | CODE |
| LOW | interface/eRxStore.php | 681 | public function updateAllergyUploadedByPatientIdAllergyId($uploaded, $patientId, $allergyId) | CODE |
| LOW | interface/eRxStore.php | 702 | public function selectActiveAllergiesByPatientId($patientId) | CODE |
| LOW | interface/eRxStore.php | 723 | public function updateAllergyEndDateByPatientIdListId($patientId, $listId) | CODE |
| LOW | interface/eRxStore.php | 743 | public function updateErxUploadedByListId($listId, $erx = 0) | CODE |
| LOW | interface/eRxStore.php | 761 | public function getPatientImportStatusByPatientId($patientId) | CODE |
| LOW | interface/eRxStore.php | 777 | public function updatePatientImportStatusByPatientId($patientId, $status) | CODE |
| LOW | …erface/forms/newpatient/C_EncounterVisitForm.class.php | 99 | public function getCareTeamFacilityForPatient($pid) | CODE |
| LOW | …erface/forms/newpatient/C_EncounterVisitForm.class.php | 170 | public function getBillingFacilityForTemplate(FacilityService $facilityService, $default_bill_fac = null): array | CODE |
| LOW | …erface/forms/newpatient/C_EncounterVisitForm.class.php | 205 | public function getVisitCategoriesForTemplate($viewmode, $encounter, $default_visit_category): array | CODE |
| LOW | …erface/forms/newpatient/C_EncounterVisitForm.class.php | 250 | public function getSensitivitiesForTemplate($encounter): array | CODE |
| LOW | …erface/forms/newpatient/C_EncounterVisitForm.class.php | 342 | public function getInCollectionOptionsForTemplate($encounter = null): array | CODE |
| LOW | …erface/forms/newpatient/C_EncounterVisitForm.class.php | 358 | public function getDischargeDispositionsForTemplate($encounter = null): array | CODE |
| LOW | …erface/forms/newpatient/C_EncounterVisitForm.class.php | 385 | public function getTherapyGroupCategoriesForTemplate(): array | CODE |
| LOW | …erface/forms/newpatient/C_EncounterVisitForm.class.php | 447 | public function getDuplicateEncounterRecords($viewmode, $pid): array | CODE |
| LOW | …erface/forms/newpatient/C_EncounterVisitForm.class.php | 746 | public function getDefaultFacilityForNewEncounters($pid, FacilityService $facilityService) | CODE |
| LOW | interface/forms/newpatient/newpatient.js | 83 | function checkForDuplicateEncounter(config) { | CODE |
| LOW | interface/forms/clinical_notes/clinical-notes.js | 547 | function setupDocumentDialogEvents(dialog, noteIndex) { | CODE |
| LOW | interface/forms/clinical_notes/clinical-notes.js | 930 | function updateDocumentSelectedCount(count) { | CODE |
| LOW | interface/forms/clinical_notes/clinical-notes.js | 939 | function updateResultsSelectedCount(count) { | CODE |
| LOW | interface/forms/clinical_notes/clinical-notes.js | 1053 | function matchesDocumentSearchTerm(media, searchTerm) { | CODE |
| LOW | …rms/procedure_order/procedure_order_save_functions.php | 287 | function softDeleteRemovedSpecimens($formid, $order_seq, $processedIds): void | CODE |
| LOW | …rms/procedure_order/procedure_order_save_functions.php | 326 | function getOrCreateProcedureType($postData, $index): ?int | CODE |
| LOW | interface/forms/procedure_order/common.php | 685 | function addProcedureOrderSeqField(lineCount, orderSeq) { | CODE |
| LOW | …_groups/therapy_groups_models/group_statuses_model.php | 52 | public function getGroupAttendanceStatuses(): array | CODE |
| LOW | …erapy_groups_controllers/therapy_groups_controller.php | 52 | public static function prepareParticipantStatusesList(): array | CODE |
| LOW | …erapy_groups_controllers/therapy_groups_controller.php | 73 | public static function prepareGroupParticipationList(): array | CODE |
| LOW | …erapy_groups_controllers/therapy_groups_controller.php | 352 | private function checkIfHasApptOrEncounter($group_id): bool | CODE |
| LOW | interface/smart/register-app.php | 313 | function toggleSystemFunctionality(enabled) { | CODE |
| LOW | interface/smart/register-app.php | 323 | function toggleDecisionSupportTypeFields(event) { | CODE |
| LOW | interface/orders/receive_hl7_results.inc.php | 401 | function getPerformingOrganizationDetails($obx23, $obx24, $obx25, $componentdelimiter, $commentdelim) | CODE |
| LOW | interface/patient_file/front_payment_terminal.php | 100 | function fetchPaymentIntentClientSecret(amount) { | CODE |
| 6159 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | webpack.themes.js | 152 | // ── oe-styles base themes (LTR) ────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | webpack.themes.js | 158 | // ── oe-styles compact themes ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | webpack.themes.js | 164 | // ── oe-styles RTL themes ───────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | webpack.themes.js | 170 | // ── oe-styles RTL compact themes ───────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | webpack.themes.js | 176 | // ── color variant themes (LTR) ─────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | webpack.themes.js | 180 | // ── color variant themes (compact) ─────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | webpack.themes.js | 184 | // ── color variant themes (RTL) ─────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | webpack.themes.js | 188 | // ── color variant themes (RTL compact) ─────────────────────────────────── | COMMENT |
| MEDIUM⚡ | webpack.themes.js | 192 | // ── tabs themes (LTR) ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | webpack.themes.js | 196 | // ── tabs themes (RTL) ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | webpack.themes.js | 200 | // ── root-level themes (no variant transforms) ──────────────────────────── | COMMENT |
| MEDIUM⚡ | webpack.themes.js | 205 | // ── misc → public/themes/misc/ (LTR) ──────────────────────────────────── | COMMENT |
| MEDIUM⚡ | webpack.themes.js | 212 | // ── misc → public/themes/misc/ (RTL) ──────────────────────────────────── | COMMENT |
| MEDIUM | …/Carecoordination/Model/EncounterccdadispatchTable.php | 1436 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/Carecoordination/Model/EncounterccdadispatchTable.php | 1438 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/summary.sh | 2 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/summary.sh | 4 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/summary.sh | 7 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/test_suite.sh | 2 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/test_suite.sh | 4 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/test_suite.sh | 10 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/test_suite.sh | 14 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/test_suite.sh | 16 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/test_suite.sh | 80 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/test_suite.sh | 82 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/test_suite.sh | 241 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/test_suite.sh | 243 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/test_suite.sh | 288 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/test_suite.sh | 290 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/test_suite.sh | 1657 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/test_suite.sh | 1659 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/test_functionality.sh | 2 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/test_functionality.sh | 4 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/test_functionality.sh | 22 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/export_to_csv.sh | 2 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/export_to_csv.sh | 4 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/export_to_csv.sh | 8 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/benchmark.sh | 15 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/benchmark.sh | 19 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/benchmark.sh | 21 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/benchmark.sh | 561 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/benchmark.sh | 563 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/benchmark.sh | 568 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/benchmark.sh | 574 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/benchmark.sh | 576 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/container_benchmarking/benchmark.sh | 2 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/benchmark.sh | 4 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/benchmark.sh | 63 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/benchmark.sh | 65 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/benchmark.sh | 99 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/benchmark.sh | 101 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/benchmark.sh | 261 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/benchmark.sh | 263 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/benchmark.sh | 332 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/benchmark.sh | 334 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/benchmark.sh | 385 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/benchmark.sh | 387 | # ============================================================================ | COMMENT |
| MEDIUM | docker/container_benchmarking/benchmark.sh | 681 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/container_benchmarking/benchmark.sh | 683 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/docker-compose.yml | 1 | # ============================================================================ | COMMENT |
| 362 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | CONTRIBUTING.md | 79 | - `Generated-By: Claude` — Code fully generated by Claude Code, claude.ai, etc. | CODE |
| HIGH | gacl/admin/admin_functions.js | 121 | // AI-generated code start (GitHub Copilot) | COMMENT |
| HIGH | gacl/admin/admin_functions.js | 129 | // AI-generated code end | COMMENT |
| HIGH | interface/forms/eye_mag/view.php | 4472 | // AI-generated code start (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH⚡ | interface/forms/eye_mag/view.php | 4504 | // AI-generated code end | COMMENT |
| HIGH⚡ | interface/forms/eye_mag/view.php | 4514 | // AI-generated code (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH⚡ | interface/forms/eye_mag/view.php | 4523 | // AI-generated code (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | …erface/forms/newpatient/C_EncounterVisitForm.class.php | 147 | // GENERATED BY claude.ai January 30th 2025 -- HEADER | COMMENT |
| HIGH | …erface/forms/newpatient/C_EncounterVisitForm.class.php | 480 | // GENERATED BY claude.ai January 30th 2025 -- FOOTER | COMMENT |
| HIGH | interface/forms/newpatient/newpatient.js | 15 | // CODE GENERATED BY CLAUDE.AI - START | COMMENT |
| HIGH | interface/forms/newpatient/newpatient.js | 45 | // CODE GENERATED BY CLAUDE.AI - END | COMMENT |
| HIGH | interface/forms/newpatient/newpatient.js | 120 | // CODE GENERATED BY CLAUDE.AI - START | COMMENT |
| HIGH | interface/forms/newpatient/newpatient.js | 306 | // CODE GENERATED BY CLAUDE.AI - END | COMMENT |
| HIGH | interface/usergroup/addrbook_edit.php | 177 | // AI-generated code start (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | interface/usergroup/addrbook_edit.php | 193 | // AI-generated code end | COMMENT |
| HIGH | interface/drugs/drug_inventory.php | 259 | // AI-generated code start (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | interface/drugs/drug_inventory.php | 271 | // AI-generated code end | COMMENT |
| HIGH | interface/patient_tracker/patient_tracker.php | 1034 | // AI-generated code start (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | interface/patient_tracker/patient_tracker.php | 1053 | // AI-generated code end | COMMENT |
| HIGH | interface/orders/procedure_provider_list.php | 57 | // AI-generated code start (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | interface/orders/procedure_provider_list.php | 81 | // AI-generated code end | COMMENT |
| HIGH | interface/orders/find_order_popup.php | 112 | // AI-generated code start (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | interface/orders/find_order_popup.php | 135 | // AI-generated code end | COMMENT |
| HIGH | interface/patient_file/front_payment.php | 406 | // AI-generated code start (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | interface/patient_file/front_payment.php | 416 | // AI-generated code end | COMMENT |
| HIGH | interface/patient_file/pos_checkout_normal.php | 215 | // AI-generated code start (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | interface/patient_file/pos_checkout_normal.php | 225 | // AI-generated code end | COMMENT |
| HIGH⚡ | interface/patient_file/pos_checkout_ippf.php | 582 | // AI-generated code start (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH⚡ | interface/patient_file/pos_checkout_ippf.php | 592 | // AI-generated code end | COMMENT |
| HIGH⚡ | interface/patient_file/pos_checkout_ippf.php | 601 | // AI-generated code start (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | interface/patient_file/pos_checkout_ippf.php | 619 | // AI-generated code end | COMMENT |
| HIGH | interface/patient_file/transaction/add_transaction.php | 309 | // AI-generated code start (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | interface/patient_file/transaction/add_transaction.php | 320 | // AI-generated code end | COMMENT |
| HIGH | interface/patient_file/report/patient_report.php | 399 | // AI-generated code (Claude Code) - start | COMMENT |
| HIGH | interface/patient_file/report/patient_report.php | 408 | // AI-generated code (Claude Code) - end | COMMENT |
| HIGH | interface/patient_file/report/patient_report.php | 475 | // AI-generated code (Claude Code) - start | COMMENT |
| HIGH | interface/patient_file/report/patient_report.php | 484 | // AI-generated code (Claude Code) - end | COMMENT |
| HIGH | interface/patient_file/summary/stats_full.php | 120 | // AI-generated code start (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | interface/patient_file/summary/stats_full.php | 141 | // AI-generated code end | COMMENT |
| HIGH | interface/patient_file/summary/stats_full.php | 148 | // AI-generated code start (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | interface/patient_file/summary/stats_full.php | 171 | // AI-generated code end | COMMENT |
| HIGH | interface/main/tabs/js/tabs_view_model.js | 245 | // AI-generated code start (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | interface/main/tabs/js/tabs_view_model.js | 260 | // AI-generated code end | COMMENT |
| HIGH | interface/main/tabs/js/tabs_view_model.js | 264 | // AI-generated code (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | interface/main/messages/js/reminder_appts.js | 288 | // AI-generated code start (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | interface/main/messages/js/reminder_appts.js | 302 | // AI-generated code end | COMMENT |
| HIGH | …face/main/calendar/modules/PostCalendar/common.api.php | 261 | // AI-generated code (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | …modules/zend_modules/public/js/lib/jquery-ui.custom.js | 1530 | // Format a name, short or long as requested | COMMENT |
| HIGH | …les/zend_modules/public/js/lib/jquery.ui.datepicker.js | 1192 | // Format a name, short or long as requested | COMMENT |
| HIGH | …erface/modules/zend_modules/public/js/lib/jquery-ui.js | 8906 | // Format a name, short or long as requested | COMMENT |
| HIGH | interface/billing/sl_eob_search.php | 22 | * @copyright Public Domain for the pieces that were generated by Claude.AI | COMMENT |
| HIGH | interface/billing/era_payments.php | 223 | // AI-generated code (GitHub Copilot) - Refactored to use URLSearchParams | COMMENT |
| HIGH | …ort/docs/bower/admin-lte/plugins/jQueryUI/jquery-ui.js | 5102 | // Format a name, short or long as requested | COMMENT |
| HIGH | …y/layout/bower/admin-lte/plugins/jQueryUI/jquery-ui.js | 5102 | // Format a name, short or long as requested | COMMENT |
| HIGH | tests/PHPStan/Rules/ForbiddenGlobalsAccessRule.php | 11 | * @author GitHub Copilot // AI-generated | COMMENT |
| HIGH | …erface/Forms/Observation/ObservationControllerTest.php | 11 | * @copyright Public Domain for the pieces that were generated by Claude.AI | COMMENT |
| HIGH | …ts/Tests/Unit/FHIR/SMART/ClientAdminControllerTest.php | 8 | * @copyright Public Domain, this class was generated by Claude AI and had modifications added afterwards. | COMMENT |
| HIGH | …nIDConnect/SMARTSessionTokenContextIntegrationTest.php | 20 | * This code is released into the public domain as it was entirely generated by Claude AI. | COMMENT |
| HIGH | …stControllers/Subscriber/AuthorizationListenerTest.php | 9 | * @copyright This file belongs in the public domain as most of it was generated by Claude.AI with bug fixes/changes mad | COMMENT |
| HIGH | …Common/Auth/OpenIDConnect/IdTokenSMARTResponseTest.php | 10 | * This code is released into the public domain as it was entirely generated by Claude AI. | COMMENT |
| 80 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | acl_upgrade.php | 181 | //Insert the 'state' object from the 'lists' section into the Administrators group write ACL (added in 3.0.2) | COMMENT |
| LOW | acl_upgrade.php | 381 | AclExtended::addObjectAcl('patients', 'Patients', 'amendment', 'Amendments (write,addonly optional)'); | COMMENT |
| LOW | .pre-commit-config.yaml | 1 | # See https://pre-commit.com for more information | COMMENT |
| LOW | .pre-commit-config.yaml | 21 | # - library/js/{Category,Document}TreeMenu.js, SearchHighlight.js (vendored plugins) | COMMENT |
| LOW | .pre-commit-config.yaml | 81 | # --unsafe flag tells PyYAML to accept user-defined tags as long as | COMMENT |
| LOW | .pre-commit-config.yaml | 101 | # 2-space: JS/npm packages, JSON Schemas. Matches `npm init` defaults | COMMENT |
| LOW | .pre-commit-config.yaml | 201 | COMMENT | |
| LOW | .hadolint.yaml | 1 | # Hadolint configuration for OpenEMR | COMMENT |
| LOW | .hadolint.yaml | 41 | COMMENT | |
| LOW | webpack.themes.js | 21 | * The filesystem cache writes to .webpack-cache/ (mapped by the Dockerfile's | COMMENT |
| LOW | webpack.themes.js | 121 | ], | COMMENT |
| LOW | sql_upgrade.php | 181 | // affect the primary termination signal (streaming chunk swallowed | COMMENT |
| LOW | rector.php | 61 | // third-party code, not maintained in this repo, so skip it the same way | COMMENT |
| LOW | version.php | 21 | COMMENT | |
| LOW | .codespell-exclude-lines.txt | 1 | # Lines to exclude from codespell checking | COMMENT |
| LOW | sql_patch.php | 1 | <?php | COMMENT |
| LOW | run-semgrep.sh | 1 | #!/bin/bash | COMMENT |
| LOW | interface/forms/eye_mag/view.php | 4561 | // each section could be customized, like SOCHx, subtype "smoking" | COMMENT |
| LOW | interface/forms/eye_mag/save.php | 61 | COMMENT | |
| LOW | interface/forms/eye_mag/save.php | 901 | //Update the visit status for this appointment (from inside the Coding Engine) | COMMENT |
| LOW | interface/forms/eye_mag/js/shorthand_eye.js | 101 | var nofield = 'error'; | COMMENT |
| LOW | interface/forms/eye_mag/php/eye_mag_functions.php | 1881 | $PMSFH['SOCH']['marital_status'] = []; | COMMENT |
| LOW | interface/forms/procedure_order/common.php | 1661 | <button type="button" class="close" data-dismiss="alert"><span class="text-dark">×</sp | COMMENT |
| LOW | interface/forms/phq9/phq9_javasrc.js | 1 | // PHQ9 form | COMMENT |
| LOW | interface/forms/gad7/gad7_javasrc.js | 1 | // GAD-7 form | COMMENT |
| LOW | interface/fax/fax_dispatch.php | 481 | // not very good, so we upgrade it to "fine mode" fax quality. It's really | COMMENT |
| LOW | interface/drugs/drugs.inc.php | 1 | <?php | COMMENT |
| LOW | interface/orders/load_compendium.php | 181 | if ($fhcsv) { | COMMENT |
| LOW | interface/main/main_screen.php | 361 | /////////////////////////////////////////////////////////////////////// | COMMENT |
| LOW | interface/main/tabs/js/include_opener.js | 61 | // called .modal('hide'). Two bugs there when dlgclose fires from | COMMENT |
| LOW | interface/main/calendar/find_appt_popup.php | 481 | COMMENT | |
| LOW | interface/main/calendar/find_appt_popup.php | 501 | // opener undefined has a second chance to find the real parent. | COMMENT |
| LOW | interface/main/calendar/add_edit_event.php | 841 | } | COMMENT |
| LOW | interface/main/calendar/config.php | 1 | <?php | COMMENT |
| LOW | interface/main/calendar/pntables.php | 1 | <?php | COMMENT |
| LOW | interface/main/calendar/add_edit_event.js | 281 | url.searchParams.set('evdur', document.forms[0].form_duration.value); | COMMENT |
| LOW | interface/main/calendar/includes/pnAPI.php | 1 | <?php | COMMENT |
| LOW | interface/main/calendar/includes/pnHTML.php | 1 | <?php | COMMENT |
| LOW | interface/main/calendar/includes/pnMod.php | 1 | <?php | COMMENT |
| LOW | …rface/main/calendar/modules/PostCalendar/pnuserapi.php | 521 | }; | COMMENT |
| LOW | …alendar/modules/PostCalendar/pnincludes/PopupWindow.js | 1 | // =================================================================== | COMMENT |
| LOW | …lendar/modules/PostCalendar/pnincludes/overlib_mini.js | 1 | //\////////////////////////////////////////////////////////////////////////////////// | COMMENT |
| LOW | …lendar/modules/PostCalendar/pnincludes/ColorPicker2.js | 1 | // =================================================================== | COMMENT |
| LOW | …ndar/modules/PostCalendar/pnincludes/AnchorPosition.js | 1 | // =================================================================== | COMMENT |
| LOW | …stCalendar/pntemplates/default/views/monthSelector.php | 1 | <?php | COMMENT |
| LOW | interface/main/finder/dynamic_finder_ajax.php | 101 | // Helper function for filtering dates. Returns a string for use with MySQL LIKE. | COMMENT |
| LOW | interface/main/finder/dynamic_finder_ajax.php | 301 | // error_log($query); // debugging | COMMENT |
| LOW | …ation/src/Carecoordination/Model/ModuleconfigTable.php | 1 | <?php | COMMENT |
| LOW | …ordination/src/Carecoordination/Model/Moduleconfig.php | 1 | <?php | COMMENT |
| LOW | …romicsurveillance/Model/SyndromicsurveillanceTable.php | 461 | $r['issuedate'] . "|" . // 5. Diagnosis Date/Time | COMMENT |
| LOW | interface/modules/zend_modules/public/index.php | 41 | // on and the request is on the seam's canary allowlist, serve it through the new | COMMENT |
| LOW | interface/modules/zend_modules/public/index.php | 81 | COMMENT | |
| LOW | …/modules/zend_modules/public/js/lib/virtualpaginate.js | 1 | // ------------------------------------------------------------------- | COMMENT |
| LOW | …ace/modules/zend_modules/public/js/lib/jquery-1.8.3.js | 9461 | // since jQuery can be concatenated with other files that may use define, | COMMENT |
| LOW | …ace/modules/zend_modules/public/js/lib/jquery-1.4.3.js | 941 | // (IE uses .cssText insted) | COMMENT |
| LOW | …ules/public/js/lib/jquery.treeview-1.4.1/lib/jquery.js | 941 | // (IE uses .cssText insted) | COMMENT |
| LOW | …ink-telehealth/public/assets/js/src/conference-room.js | 441 | // { | COMMENT |
| LOW | …ustom_modules/oe-module-ehi-exporter/src/Bootstrap.php | 181 | // $value = $GLOBALS[$key] ?? $config['default']; | COMMENT |
| LOW | …odules/oe-module-faxsms/src/Controller/VoiceClient.php | 61 | $this->baseDir = OEGlobalsBag::getInstance()->getString('temporary_files_dir'); | COMMENT |
| LOW | interface/themes/color_base.scss | 21 | * @license http://opensource.org/licenses/gpl-license.php GNU Public License | COMMENT |
| 765 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker/COVERAGE.md | 12 | 4. The container runs `kcov-wrapper.sh`, which does the heavy build (composer, npm, napa, webpack, phing) OUTSIDE kcov i | CODE |
| MEDIUM | docker/flex/openemr.sh | 1135 | # falling back to file sessions (which would break downstream orchestration). | COMMENT |
| MEDIUM | docker/flex/kcov-wrapper.sh | 57 | # mostly bare command invocations; the meaningful orchestration paths | COMMENT |
| MEDIUM | docker/flex/kcov-wrapper.sh | 63 | # Pass 2: orchestration under kcov, build already done. FLEX_SKIP_APACHE_EXEC | COMMENT |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 5 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$ignoreAuth\\)\\. Use dependency injection instead\\.$ | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 10 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$pid\\)\\. Use dependency injection instead\\.$#', | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 15 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$pid\\)\\. Use dependency injection instead\\.$#', | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 20 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$commitchanges\\)\\. Use dependency injection instead\ | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 25 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$qrda_file_path\\)\\. Use dependency injection instead | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 30 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$code_external_tables\\)\\. Use dependency injection i | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 35 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$code_types, \\$code_external_tables\\)\\. Use depende | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 40 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$code_types\\)\\. Use dependency injection instead\\.$ | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 45 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$ct_external_options\\)\\. Use dependency injection in | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 50 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$EXPORT_PATH\\)\\. Use dependency injection instead\\. | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 55 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$pid\\)\\. Use dependency injection instead\\.$#', | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 60 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$out, \\$indent\\)\\. Use dependency injection instead | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 65 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$encCheckUniqId, \\$from_date, \\$to_date, \\$Encounte | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 70 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$encCheckUniqId, \\$from_date, \\$to_date\\)\\. Use de | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 75 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$from_date, \\$to_date\\)\\. Use dependency injection | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 80 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$mainQrdaPayerCodeSendArr, \\$from_date, \\$to_date\\) | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 85 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$mainQrdaRaceCodeArr, \\$mainEthiCodeArr, \\$from_date | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 90 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$preDefinedUniqIDRules\\)\\. Use dependency injection | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 95 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$qrda_file_path\\)\\. Use dependency injection instead | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 100 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$db\\)\\. Use dependency injection instead\\.$#', | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 105 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$where, \\$eracount, \\$eraname\\)\\. Use dependency i | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 110 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$InsertionId\\)\\. Use dependency injection instead\\. | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 115 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$StringToEcho, \\$debug\\)\\. Use dependency injection | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 120 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$encount, \\$debug\\)\\. Use dependency injection inst | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 125 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$invoice_total, \\$last_code, \\$paydate\\)\\. Use dep | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 130 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$invoice_total\\)\\. Use dependency injection instead\ | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 135 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$last_ptname, \\$last_invnumber, \\$last_code\\)\\. Us | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 140 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$STMT_TEMP_FILE_PDF\\)\\. Use dependency injection ins | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 145 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$where, \\$eracount, \\$eraname\\)\\. Use dependency i | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 150 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$bcodes\\)\\. Use dependency injection instead\\.$#', | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 155 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$isAuthorized\\)\\. Use dependency injection instead\\ | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 160 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$srcdir, \\$isAuthorized\\)\\. Use dependency injectio | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 165 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$isAuthorized\\)\\. Use dependency injection instead\\ | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 170 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$ub04_codes\\)\\. Use dependency injection instead\\.$ | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 175 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$tmpl_line_no\\)\\. Use dependency injection instead\\ | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 180 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$drug_id, \\$is_user_restricted\\)\\. Use dependency i | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 185 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$drug_id\\)\\. Use dependency injection instead\\.$#', | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 190 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$auth_admin, \\$auth_lots\\)\\. Use dependency injecti | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 195 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$msg, \\$page\\)\\. Use dependency injection instead\\ | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 200 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$msg, \\$warning_msg, \\$dem_check\\)\\. Use dependenc | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 205 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$msg\\)\\. Use dependency injection instead\\.$#', | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 210 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$cell_count, \\$CPR, \\$historical_ids, \\$USING_BOOTS | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 215 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$item_count, \\$historical_ids, \\$USING_BOOTSTRAP\\)\ | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 220 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$cell_count, \\$CPR\\)\\. Use dependency injection ins | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 225 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$item_count, \\$cell_count\\)\\. Use dependency inject | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 230 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$CPR\\)\\. Use dependency injection instead\\.$#', | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 235 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$counter_header\\)\\. Use dependency injection instead | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 240 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$OE_SITE_DIR\\)\\. Use dependency injection instead\\. | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 245 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$PMSFH\\)\\. Use dependency injection instead\\.$#', | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 250 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$PMSFH_titles\\)\\. Use dependency injection instead\\ | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 255 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$codes_found\\)\\. Use dependency injection instead\\. | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 260 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$dated\\)\\. Use dependency injection instead\\.$#', | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 265 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$display\\)\\. Use dependency injection instead\\.$#', | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 270 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$documents\\)\\. Use dependency injection instead\\.$# | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 275 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$earlier\\)\\. Use dependency injection instead\\.$#', | CODE |
| MEDIUM⚡ | .phpstan/baseline/openemr.forbiddenGlobalKeyword.php | 280 | 'message' => '#^Use of the "global" keyword is forbidden \\(\\$encounter\\)\\. Use dependency injection instead\\.$# | CODE |
| 337 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …ace/forms/eye_mag/js/jquery-ui-1-11-4/jquery-ui.min.js | 6 | (function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a, | CODE |
| CRITICAL | …ace/forms/eye_mag/js/jquery-ui-1-11-4/jquery-ui.min.js | 8 | return e.datepicker._get(n,"constrainInput")?(i=e.datepicker._possibleChars(e.datepicker._get(n,"dateFormat")),s=String. | CODE |
| CRITICAL | interface/forms/eye_mag/js/jquery-1-10-2/jquery.min.js | 5 | }({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e. | CODE |
| CRITICAL | …odules/zend_modules/public/js/lib/jquery.easyui.min.js | 8677 | $.fn.datagrid.defaults.view.onAfterRender.call(this,_66c); | CODE |
| CRITICAL | …odules/zend_modules/public/js/lib/jquery-1.10.2.min.js | 5 | }({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e. | CODE |
| CRITICAL | …ink-telehealth/public/assets/js/telehealth-calendar.js | 164 | window.top.window.parent.left_nav.setPatientEncounter(encounterData.encounterList.ids, encounterData.encounterLi | CODE |
| CRITICAL | …docs/bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js | 6 | (function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a, | CODE |
| CRITICAL | …docs/bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js | 8 | return e.datepicker._get(n,"constrainInput")?(i=e.datepicker._possibleChars(e.datepicker._get(n,"dateFormat")),s=String. | CODE |
| CRITICAL | …ocs/bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js | 3 | }catch(e){}O.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:fun | CODE |
| CRITICAL | Documentation/EHI_Export/docs/bower/jquery/jquery.js | 7591 | jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { | CODE |
| CRITICAL | …yout/bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js | 6 | (function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a, | CODE |
| CRITICAL | …yout/bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js | 8 | return e.datepicker._get(n,"constrainInput")?(i=e.datepicker._possibleChars(e.datepicker._get(n,"dateFormat")),s=String. | CODE |
| CRITICAL | …out/bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js | 3 | }catch(e){}O.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:fun | CODE |
| CRITICAL | …ion/EHI_Export/schemaspy/layout/bower/jquery/jquery.js | 7591 | jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | acl_upgrade.php | 97 | AclExtended::addObjectSectionAcl('placeholder', 'Placeholder'); | CODE |
| LOW | acl_upgrade.php | 126 | AclExtended::addObjectAcl('placeholder', 'Placeholder', 'filler', 'Placeholder (Maintains empty ACLs)'); | CODE |
| LOW | interface/usergroup/email_send_test.php | 125 | placeholder="admin@example.com" required> | CODE |
| LOW | …mmunization/src/Immunization/Form/ImmunizationForm.php | 49 | 'placeholder' => 'From Date', | CODE |
| LOW | …mmunization/src/Immunization/Form/ImmunizationForm.php | 61 | 'placeholder' => 'To Date', | CODE |
| LOW | …/js/lib/jquery.treeview-1.4.1/jquery.treeview.async.js | 32 | classes: "placeholder", | CODE |
| LOW | …/js/lib/jquery.treeview-1.4.1/jquery.treeview.async.js | 69 | classes: "placeholder", | CODE |
| LOW | …ort/docs/bower/datatables.net/jquery.dataTables.min.js | 41 | "":this.value;b!=e.sSearch&&(ga(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iD | CODE |
| LOW | …y/layout/bower/datatables.net/jquery.dataTables.min.js | 41 | "":this.value;b!=e.sSearch&&(ga(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iD | CODE |
| LOW | Documentation/api/AUTHENTICATION.md | 97 | "contacts": ["admin@example.org"], | CODE |
| LOW | Documentation/api/AUTHENTICATION.md | 125 | "contacts": ["admin@example.org"], | CODE |
| LOW | Documentation/api/STANDARD_API.md | 377 | "street": "123 Main St", | CODE |
| LOW | Documentation/api/STANDARD_API.md | 381 | "phone_home": "555-1234", | CODE |
| LOW | Documentation/api/SMART_ON_FHIR.md | 181 | "contacts": ["admin@example.com"] | CODE |
| LOW | docker/development-insane/docker-compose.yml | 630 | - ../library/dockers/dev-nginx/dummy-key:/etc/nginx/dummy-key:ro | CODE |
| LOW | portal/patient/scripts/app/patientdata.js | 189 | $(this).prop('placeholder', 'Invalid Date'); | CODE |
| LOW | swagger/swagger-ui.js | 1 | !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.am | CODE |
| LOW | swagger/swagger-ui-es-bundle-core.js | 2 | import*as e from"react-immutable-pure-component";import*as t from"remarkable/linkify";import*as r from"dompurify";import | CODE |
| LOW | swagger/swagger-ui-standalone-preset.js | 2 | !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.am | CODE |
| LOW | ci/compose-shared-nginx/compose.yml | 24 | - ./nginx/dummy-key:/etc/nginx/dummy-key:ro | CODE |
| LOW⚡ | tests/Tests/Unit/Common/Utils/XmlUtilsTest.php | 45 | $this->assertSame('John Doe', (string) $result->name); | CODE |
| LOW | tests/Tests/Api/ApiTestClient.php | 336 | "contacts" => ["me@example.org", "them@example.org"], | CODE |
| LOW | tests/Tests/Api/BulkAPITestClient.php | 128 | "contacts" => ["me@example.org", "them@example.org"], | CODE |
| LOW | …ests/Isolated/Portal/PatientControllerSecurityTest.php | 171 | 'phoneHome' => '555-0000' | CODE |
| LOW⚡ | …ests/Isolated/Portal/PatientControllerSecurityTest.php | 232 | 'phoneHome' => '555-0000' | CODE |
| LOW⚡ | tests/Tests/Isolated/USPS/USPSAddressVerifyV3Test.php | 42 | $result = $verify->verify('123 Main St', '', 'Springfield', 'IL', '62701'); | CODE |
| LOW⚡ | tests/Tests/Isolated/USPS/USPSAddressVerifyV3Test.php | 100 | $verify->verify('123 Main St', '', 'City', 'ST', '12345'); | CODE |
| LOW⚡ | tests/Tests/Isolated/USPS/USPSAddressVerifyV3Test.php | 157 | $verify->verify('123 Main St', 'Apt 4B', 'Springfield', 'IL', '62701', '1234'); | CODE |
| LOW⚡ | tests/Tests/Isolated/USPS/USPSAddressVerifyV3Test.php | 160 | $this->assertEquals('123 Main St', $query['streetAddress']); | CODE |
| LOW⚡ | tests/Tests/Isolated/USPS/USPSAddressVerifyV3Test.php | 173 | $verify->verify('123 Main St', '', 'Springfield', 'IL', '', ''); | CODE |
| LOW⚡ | tests/Tests/Isolated/USPS/USPSAddressVerifyV3Test.php | 211 | $verify->verify('123 Main St', '', 'City', 'ST', '12345', '6789'); | CODE |
| LOW⚡ | tests/Tests/Isolated/USPS/USPSAddressVerifyV3Test.php | 243 | $verify->verify('123 Main St', '', 'City', 'ST', '12345'); | CODE |
| LOW⚡ | tests/Tests/Isolated/USPS/USPSAddressVerifyV3Test.php | 251 | $result = $verify->verify('123 Main St', '', 'City', 'ST', '12345'); | CODE |
| LOW⚡ | tests/Tests/Isolated/USPS/USPSAddressVerifyV3Test.php | 262 | $verify->verify('123 Main St', '', 'City', 'ST', '12345'); | CODE |
| LOW | tests/Tests/Isolated/USPS/USPSAddressVerifyV3Test.php | 189 | $verify->verify('123 Main St', '', 'City', 'ST', '12345', 'invalid'); | CODE |
| LOW | tests/Tests/Isolated/USPS/USPSAddressVerifyV3Test.php | 200 | $verify->verify('123 Main St', '', 'City', 'ST', '12345', '123'); | CODE |
| LOW⚡ | tests/Tests/Isolated/Core/OEGlobalsBagIsolatedTest.php | 140 | $key = 'dummy-key'; | CODE |
| LOW⚡ | tests/Tests/Isolated/Core/OEGlobalsBagIsolatedTest.php | 141 | $value = 'dummy-value'; | CODE |
| LOW⚡ | tests/Tests/Isolated/Core/OEGlobalsBagIsolatedTest.php | 153 | $key = 'dummy-key'; | CODE |
| LOW⚡ | tests/Tests/Isolated/Core/OEGlobalsBagIsolatedTest.php | 154 | $value = 'dummy-value'; | CODE |
| LOW⚡ | …Controllers/SMART/SMARTAuthorizationControllerTest.php | 68 | ->willReturn(['id' => '123e4567-e89b-12d3-a456-426614174000', 'name' => 'John Doe']); | CODE |
| LOW⚡ | …/Tests/Isolated/Cqm/Qdm/BaseTypes/AbstractTypeTest.php | 102 | 'street' => ['123 Main St', 'Suite 100'], | CODE |
| LOW⚡ | …/Tests/Isolated/Cqm/Qdm/BaseTypes/AbstractTypeTest.php | 110 | $this->assertSame(['123 Main St', 'Suite 100'], $address->street); | CODE |
| LOW | tests/Tests/Isolated/library/CsvEscapeTest.php | 48 | 'email in middle' => ['user@example.com', '"user@example.com"'], // @ preserved when not leading | CODE |
| LOW | tests/Tests/Isolated/library/classes/InstallerTest.php | 2635 | ['Placeholder', 'placeholder'], | CODE |
| LOW | …lated/Immunization/ImmunizationSqlInjectionFixTest.php | 60 | "John Doe", | CODE |
| LOW | …/Isolated/Common/Utils/ValidationUtilsIsolatedTest.php | 140 | 'user+tag@example.org', | CODE |
| LOW | …olated/Common/Command/PhoneNotificationCommandTest.php | 68 | string $phoneHome = '555-1234', | CODE |
| LOW | …olated/Common/Command/PhoneNotificationCommandTest.php | 148 | 'phone_map' => [3 => '555-0000'], | CODE |
| LOW | …/Tests/Isolated/Common/Twig/TwigTemplateRenderTest.php | 849 | 'phone_home' => '555-1000', | CODE |
| LOW | …/Tests/Isolated/Common/Twig/TwigTemplateRenderTest.php | 851 | 'phone_cell' => '555-2000', | CODE |
| LOW⚡ | …ts/Tests/Isolated/Validators/FacilityValidatorTest.php | 161 | 'phone' => '555-0123', | CODE |
| LOW⚡ | …ts/Tests/Isolated/Validators/FacilityValidatorTest.php | 164 | 'street' => '123 Main St', | CODE |
| LOW⚡ | …ts/Tests/Isolated/Validators/FacilityValidatorTest.php | 167 | 'fax' => '555-0124', | CODE |
| LOW | …ts/Tests/Isolated/Validators/CoverageValidatorTest.php | 79 | 'subscriber_street' => '123 Main St', | CODE |
| LOW | …ts/Tests/Isolated/Validators/CoverageValidatorTest.php | 124 | 'subscriber_street' => '123 Main St', | CODE |
| LOW | …ts/Tests/Isolated/Validators/CoverageValidatorTest.php | 152 | 'subscriber_street' => '123 Main St', | CODE |
| LOW | …ts/Tests/Isolated/Validators/CoverageValidatorTest.php | 242 | 'subscriber_street' => '123 Main St', | CODE |
| LOW | …ts/Tests/Isolated/Validators/CoverageValidatorTest.php | 254 | 'subscriber_phone' => '555-1234', | CODE |
| LOW⚡ | …s/Isolated/Validators/OpenEMRParticleValidatorTest.php | 109 | $validData = ['name' => 'John Doe']; | CODE |
| 54 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …erface/modules/zend_modules/public/js/lib/jquery-ui.js | 13433 | // IE sets focus asynchronously, so we need to check if focus | COMMENT |
| LOW | …-telehealth/public/assets/js/telehealth-appointment.js | 123 | // now we need to check if the patient is setup for telehealth | COMMENT |
| LOW | …ort/docs/bower/admin-lte/plugins/jQueryUI/jquery-ui.js | 14929 | // IE sets focus asynchronously, so we need to check if focus | COMMENT |
| LOW | …y/layout/bower/admin-lte/plugins/jQueryUI/jquery-ui.js | 14929 | // IE sets focus asynchronously, so we need to check if focus | COMMENT |
| LOW⚡ | docker/container_benchmarking/test_suite.sh | 1439 | # Step 3: Set an older version in sites/default/docker-version to trigger upgrade | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 1380 | # Step 1: Start fresh installation and wait for it to complete | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 1422 | # Step 2: Get current version from container and verify all version files exist | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 1514 | # Step 4: Recreate container to trigger upgrade check. | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 1584 | # Step 5: Check logs for upgrade messages (recreated container's logs) | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 1599 | # Step 6: Verify version marker was updated | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 1612 | # Step 7: Verify OpenEMR is still configured and accessible | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 867 | # Step 1: Handle swarm mode coordination (if enabled) | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 872 | # Step 2: Configure SSL/TLS certificates | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 889 | # Step 3: Check for upgrades | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 894 | # Step 4: Verify configuration exists (critical check for worker containers) | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 904 | # Step 5: Copy SSL/TLS certificates for MySQL, Redis, LDAP, CouchDB | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 1119 | # Step 12: Mark swarm completion (if in swarm mode) | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 1125 | # Step 13: Signal instance ready (swarm mode only) | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 1133 | # Step 14: Display support message | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 1141 | # Step 15: Start Apache (if this container is an operator) | COMMENT |
| LOW | docker/release/openemr.sh | 926 | # Step 6: Run auto-configuration (if needed) | COMMENT |
| LOW | docker/release/openemr.sh | 1003 | # Step 7: Update global settings if already configured | COMMENT |
| LOW | docker/release/openemr.sh | 1015 | # Step 8: Configure Redis sessions (if available) | COMMENT |
| LOW | docker/release/openemr.sh | 1051 | # Step 9: Finalize permissions and cleanup setup scripts | COMMENT |
| LOW | docker/release/openemr.sh | 1089 | # Step 10: Fix certificate permissions (only once in swarm mode) - OPTIMIZED | COMMENT |
| LOW | docker/release/openemr.sh | 1102 | # Step 11: Configure XDebug or PHP optimizations | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 705 | # Step 1: Handle swarm mode coordination (if enabled) | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 710 | # Step 2: Configure SSL/TLS certificates | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 718 | # Step 3: Check for upgrades | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 723 | # Step 4: Verify configuration exists (critical check for worker containers) | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 733 | # Step 5: Copy SSL/TLS certificates for MySQL, Redis, LDAP, CouchDB | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 915 | # Step 11: Configure PHP optimizations (XDebug not supported with static binaries) | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 924 | # Step 12: Mark swarm completion (if in swarm mode) | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 930 | # Step 13: Signal instance ready (swarm mode only) | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 938 | # Step 14: Display support message | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 944 | # Step 15: Start PHP-FPM and Apache (if this container is an operator) | COMMENT |
| LOW | docker/binary/openemr.sh | 752 | # Step 6: Run auto-configuration (if needed) | COMMENT |
| LOW | docker/binary/openemr.sh | 829 | # Step 7: Update global settings if already configured | COMMENT |
| LOW | docker/binary/openemr.sh | 841 | # Step 8: Configure Redis sessions (if available) | COMMENT |
| LOW | docker/binary/openemr.sh | 859 | # Step 9: Finalize permissions and cleanup setup scripts | COMMENT |
| LOW | docker/binary/openemr.sh | 902 | # Step 10: Fix certificate permissions (only once in swarm mode) - OPTIMIZED | COMMENT |
| LOW | portal/patient/_machine_config.php | 103 | // if Multibyte support is specified then we need to check if multibyte functions are available | COMMENT |
| LOW⚡ | tests/Tests/WebUi/WebLoginTotpFlowTest.php | 88 | // Step 1: POST username + password. With TOTP enrolled the server | COMMENT |
| LOW | tests/Tests/WebUi/WebLoginTotpFlowTest.php | 111 | // Step 2: submit a valid TOTP computed from the enrolled secret. | COMMENT |
| LOW⚡ | …ests/Isolated/Portal/PatientControllerSecurityTest.php | 219 | // Step 1: User A logs in | COMMENT |
| LOW⚡ | …ests/Isolated/Portal/PatientControllerSecurityTest.php | 224 | // Step 2: User A navigates to profile edit page | COMMENT |
| LOW⚡ | …ests/Isolated/Portal/PatientControllerSecurityTest.php | 225 | // Step 3: User A modifies the request to target User B | COMMENT |
| LOW⚡ | …ests/Isolated/Portal/PatientControllerSecurityTest.php | 235 | // Step 4: Expected result | COMMENT |
| LOW⚡ | …/Isolated/Common/Session/SessionWrapperFactoryTest.php | 665 | // Step 1: API listener creates and injects API session | COMMENT |
| LOW⚡ | …/Isolated/Common/Session/SessionWrapperFactoryTest.php | 670 | // Step 2: getActiveSession returns API session | COMMENT |
| LOW⚡ | …/Isolated/Common/Session/SessionWrapperFactoryTest.php | 674 | // Step 3: Data is accessible | COMMENT |
| LOW⚡ | …/Isolated/Common/Session/SessionWrapperFactoryTest.php | 692 | // Step 1: OAuth listener creates and injects OAuth session | COMMENT |
| LOW⚡ | …/Isolated/Common/Session/SessionWrapperFactoryTest.php | 697 | // Step 2: getActiveSession returns OAuth session | COMMENT |
| LOW | tests/Acceptance/Upgrade/UpgradeWizardUiTest.php | 86 | // Step 1: load /sql_upgrade.php. On a fresh-installed but | COMMENT |
| LOW | tests/Acceptance/Upgrade/UpgradeWizardUiTest.php | 106 | // Step 2: verify from-version is present in the dropdown. If | COMMENT |
| LOW | tests/Acceptance/Upgrade/UpgradeWizardUiTest.php | 121 | // Step 3: select the from-version and submit. Options via | COMMENT |
| LOW | tests/Acceptance/Upgrade/UpgradeWizardUiTest.php | 143 | // Step 4: assert the migration ran through completion. Wait | COMMENT |
| LOW | tests/Acceptance/Upgrade/UpgradeWizardUiTest.php | 189 | // Step 5: definitive post-migration signal — GET / redirects | COMMENT |
| LOW⚡ | tests/Acceptance/bin/api-enable.php | 71 | // Step 1: log in as admin. | COMMENT |
| LOW⚡ | tests/Acceptance/bin/api-enable.php | 77 | // Step 2: load the globals editor. | COMMENT |
| 32 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Documentation/api/AUTHENTICATION.md | 238 | #### Step 1: Authorization Request (GET) | COMMENT |
| LOW | Documentation/api/AUTHENTICATION.md | 269 | #### Step 2: User Authentication & Consent | COMMENT |
| LOW | Documentation/api/AUTHENTICATION.md | 276 | #### Step 3: Authorization Response | COMMENT |
| LOW | Documentation/api/AUTHENTICATION.md | 287 | #### Step 4: Token Exchange | COMMENT |
| LOW | Documentation/api/AUTHENTICATION.md | 414 | #### Step 1: EHR Initiates Launch | COMMENT |
| LOW | Documentation/api/AUTHENTICATION.md | 427 | #### Step 2: Authorization Request with Launch | COMMENT |
| LOW | Documentation/api/AUTHENTICATION.md | 450 | #### Step 3: Token Response with Context | COMMENT |
| LOW⚡ | Documentation/api/FHIR_API.md | 659 | # Step 1: Initiate export (get new token - client credentials) | COMMENT |
| LOW⚡ | Documentation/api/FHIR_API.md | 668 | # Step 2: Start export | COMMENT |
| LOW⚡ | Documentation/api/FHIR_API.md | 676 | # Step 3: Poll for completion | COMMENT |
| LOW | Documentation/api/FHIR_API.md | 691 | # Step 4: Get download URLs | COMMENT |
| LOW | Documentation/api/FHIR_API.md | 695 | # Step 5: Download files | COMMENT |
| LOW⚡ | docker/container_benchmarking/test_suite.sh | 1439 | # Step 3: Set an older version in sites/default/docker-version to trigger upgrade | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 1380 | # Step 1: Start fresh installation and wait for it to complete | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 1422 | # Step 2: Get current version from container and verify all version files exist | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 1514 | # Step 4: Recreate container to trigger upgrade check. | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 1584 | # Step 5: Check logs for upgrade messages (recreated container's logs) | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 1599 | # Step 6: Verify version marker was updated | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 1612 | # Step 7: Verify OpenEMR is still configured and accessible | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 867 | # Step 1: Handle swarm mode coordination (if enabled) | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 872 | # Step 2: Configure SSL/TLS certificates | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 889 | # Step 3: Check for upgrades | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 894 | # Step 4: Verify configuration exists (critical check for worker containers) | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 904 | # Step 5: Copy SSL/TLS certificates for MySQL, Redis, LDAP, CouchDB | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 1119 | # Step 12: Mark swarm completion (if in swarm mode) | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 1125 | # Step 13: Signal instance ready (swarm mode only) | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 1133 | # Step 14: Display support message | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 1141 | # Step 15: Start Apache (if this container is an operator) | COMMENT |
| LOW | docker/release/openemr.sh | 926 | # Step 6: Run auto-configuration (if needed) | COMMENT |
| LOW | docker/release/openemr.sh | 1003 | # Step 7: Update global settings if already configured | COMMENT |
| LOW | docker/release/openemr.sh | 1015 | # Step 8: Configure Redis sessions (if available) | COMMENT |
| LOW | docker/release/openemr.sh | 1051 | # Step 9: Finalize permissions and cleanup setup scripts | COMMENT |
| LOW | docker/release/openemr.sh | 1089 | # Step 10: Fix certificate permissions (only once in swarm mode) - OPTIMIZED | COMMENT |
| LOW | docker/release/openemr.sh | 1102 | # Step 11: Configure XDebug or PHP optimizations | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 705 | # Step 1: Handle swarm mode coordination (if enabled) | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 710 | # Step 2: Configure SSL/TLS certificates | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 718 | # Step 3: Check for upgrades | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 723 | # Step 4: Verify configuration exists (critical check for worker containers) | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 733 | # Step 5: Copy SSL/TLS certificates for MySQL, Redis, LDAP, CouchDB | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 915 | # Step 11: Configure PHP optimizations (XDebug not supported with static binaries) | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 924 | # Step 12: Mark swarm completion (if in swarm mode) | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 930 | # Step 13: Signal instance ready (swarm mode only) | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 938 | # Step 14: Display support message | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 944 | # Step 15: Start PHP-FPM and Apache (if this container is an operator) | COMMENT |
| LOW | docker/binary/openemr.sh | 752 | # Step 6: Run auto-configuration (if needed) | COMMENT |
| LOW | docker/binary/openemr.sh | 829 | # Step 7: Update global settings if already configured | COMMENT |
| LOW | docker/binary/openemr.sh | 841 | # Step 8: Configure Redis sessions (if available) | COMMENT |
| LOW | docker/binary/openemr.sh | 859 | # Step 9: Finalize permissions and cleanup setup scripts | COMMENT |
| LOW | docker/binary/openemr.sh | 902 | # Step 10: Fix certificate permissions (only once in swarm mode) - OPTIMIZED | COMMENT |
| LOW⚡ | tests/Tests/WebUi/WebLoginTotpFlowTest.php | 88 | // Step 1: POST username + password. With TOTP enrolled the server | COMMENT |
| LOW | tests/Tests/WebUi/WebLoginTotpFlowTest.php | 111 | // Step 2: submit a valid TOTP computed from the enrolled secret. | COMMENT |
| LOW⚡ | …ests/Isolated/Portal/PatientControllerSecurityTest.php | 219 | // Step 1: User A logs in | COMMENT |
| LOW⚡ | …ests/Isolated/Portal/PatientControllerSecurityTest.php | 224 | // Step 2: User A navigates to profile edit page | COMMENT |
| LOW⚡ | …ests/Isolated/Portal/PatientControllerSecurityTest.php | 225 | // Step 3: User A modifies the request to target User B | COMMENT |
| LOW⚡ | …ests/Isolated/Portal/PatientControllerSecurityTest.php | 235 | // Step 4: Expected result | COMMENT |
| LOW⚡ | …/Isolated/Common/Session/SessionWrapperFactoryTest.php | 665 | // Step 1: API listener creates and injects API session | COMMENT |
| LOW⚡ | …/Isolated/Common/Session/SessionWrapperFactoryTest.php | 670 | // Step 2: getActiveSession returns API session | COMMENT |
| LOW⚡ | …/Isolated/Common/Session/SessionWrapperFactoryTest.php | 674 | // Step 3: Data is accessible | COMMENT |
| LOW⚡ | …/Isolated/Common/Session/SessionWrapperFactoryTest.php | 692 | // Step 1: OAuth listener creates and injects OAuth session | COMMENT |
| LOW⚡ | …/Isolated/Common/Session/SessionWrapperFactoryTest.php | 697 | // Step 2: getActiveSession returns OAuth session | COMMENT |
| 21 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | interface/globals.php | 672 | // Need to utilize a session since library/sql.inc.php is established before there are any globals established yet. | COMMENT |
| MEDIUM | interface/forms/eye_mag/js/eye_base.php | 2788 | //we can utilize a phoropter dial feature, we can s | COMMENT |
| MEDIUM | …ace/modules/zend_modules/public/js/lib/jquery-1.8.3.js | 9463 | // AMD modules. A named AMD is safest and most robust way to register. | COMMENT |
| MEDIUM | …r/src/TableDefinitions/ExportPersonTableDefinition.php | 44 | // instead of hunting down to figure where this is at, for now will just leverage | COMMENT |
| MEDIUM | Documentation/EHI_Export/docs/bower/jquery/jquery.js | 10202 | // understands anonymous AMD modules. A named AMD is safest and most robust | COMMENT |
| MEDIUM | …ion/EHI_Export/schemaspy/layout/bower/jquery/jquery.js | 10202 | // understands anonymous AMD modules. A named AMD is safest and most robust | COMMENT |
| MEDIUM⚡ | docker/container_benchmarking/test_suite.sh | 5 | # This script runs comprehensive functional tests for OpenEMR container | COMMENT |
| MEDIUM | docker/flex/openemr.sh | 295 | # Create auto_configure.ini to leverage opcache for faster installation | COMMENT |
| MEDIUM | tests/Acceptance/Support/UiSeedingTrait.php | 308 | // is more robust than reconstructing a POST. | COMMENT |
| MEDIUM | tests/Acceptance/Support/UiSeedingTrait.php | 1330 | // full performLoginAsAdmin flow — expensive but robust. | COMMENT |
| MEDIUM | .github/byte-identical.yml | 82 | # freshest-harness intent). | COMMENT |
| MEDIUM | .github/byte-identical.yml | 329 | # rebuilds `latest` daily — without the acceptance harness on | COMMENT |
| MEDIUM | .github/docker/compose.yml | 1 | # Test harness compose file used by the .github/actions/test-actions-core | COMMENT |
| MEDIUM | .github/workflows/acceptance-package.yml | 271 | # vendor/ for the harness), so break the build into its own job | COMMENT |
| MEDIUM | .github/workflows/claude-review.yml | 14 | # Reusable workflows can only reduce, not elevate, the caller job's | COMMENT |
| MEDIUM | .github/workflows/acceptance-only.yml | 153 | # "acceptance-harness-bug recovery" case the whole point is to run | COMMENT |
| MEDIUM | .github/workflows/acceptance-only.yml | 154 | # the FRESHEST harness (master's copy) against the OLDER build's | COMMENT |
| MEDIUM | .github/workflows/acceptance-only.yml | 374 | # wants the freshest acceptance harness available, not a snapshot | COMMENT |
| MEDIUM | .github/workflows/acceptance-docker.yml | 44 | # harness itself don't break the pattern. | COMMENT |
| MEDIUM | .github/workflows/acceptance-docker.yml | 655 | # Extensions the acceptance harness needs (BrowserKit + | COMMENT |
| LOW | .github/workflows/release-prep.yml | 294 | # Why can't we just add a paths filter that catches release-prep | COMMENT |
| MEDIUM | src/PaymentProcessing/Rainforest/Api.php | 60 | // TODO: This should leverage Guzzle's abilities to make parallel | COMMENT |
| MEDIUM | src/Services/UserService.php | 186 | // TODO: eventually we'd like to leverage the inner search piece here and combine these methods | COMMENT |
| MEDIUM | src/Services/FHIR/FhirGoalService.php | 546 | // require it via a custom field on the OpenEMR record. The simplest robust path: | COMMENT |
| MEDIUM | src/Billing/X125010837I.php | 1067 | // (Really oughta have this for robust 835 posting!) | COMMENT |
| MEDIUM | src/Billing/X125010837P.php | 1432 | // (Really oughta have this for robust 835 posting!) | COMMENT |
| MEDIUM | sql/7_0_3-to-7_0_4_upgrade.sql | 359 | INSERT INTO `list_options` (`list_id`, `option_id`, `title`, `seq`, `activity`, `notes`) VALUES ('ecqm_2023_reporting',' | CODE |
| MEDIUM | sql/7_0_3-to-7_0_4_upgrade.sql | 512 | INSERT INTO `list_options` (`list_id`, `option_id`, `title`, `seq`, `activity`, `notes`) VALUES ('ecqm_2025_reporting',' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run-semgrep.sh | 5 | # Usage: | COMMENT |
| LOW⚡ | docker/container_benchmarking/test_functionality.sh | 9 | # Usage: | COMMENT |
| LOW⚡ | docker/library/dockers/dev-php-fpm-8-6/xdebug.sh | 16 | # Usage: | COMMENT |
| LOW⚡ | docker/library/dockers/dev-php-fpm-8-7/xdebug.sh | 16 | # Usage: | COMMENT |
| LOW⚡ | docker/library/dockers/dev-php-fpm-8-2/xdebug.sh | 16 | # Usage: | COMMENT |
| LOW⚡ | docker/library/dockers/dev-php-fpm-8-5/xdebug.sh | 16 | # Usage: | COMMENT |
| LOW⚡ | docker/library/dockers/dev-php-fpm-8-4/xdebug.sh | 16 | # Usage: | COMMENT |
| LOW⚡ | docker/library/dockers/dev-php-fpm-8-3/xdebug.sh | 16 | # Usage: | COMMENT |
| LOW⚡ | docker/release/xdebug.sh | 15 | # Usage: | COMMENT |
| LOW⚡ | docker/release/ssl.sh | 15 | # Usage: | COMMENT |
| LOW⚡ | docker/release/openemr.sh | 21 | # Usage: | COMMENT |
| LOW⚡ | docker/release/kcov-wrapper.sh | 12 | # Usage: | COMMENT |
| LOW⚡ | docker/release/utilities/unlock_admin.sh | 10 | # Usage: | COMMENT |
| LOW⚡ | docker/binary/ssl.sh | 15 | # Usage: | COMMENT |
| LOW⚡ | docker/binary/openemr.sh | 23 | # Usage: | COMMENT |
| LOW⚡ | docker/binary/utilities/unlock_admin.sh | 10 | # Usage: | COMMENT |
| LOW⚡ | docker/flex/xdebug.sh | 15 | # Usage: | COMMENT |
| LOW⚡ | docker/flex/ssl.sh | 15 | # Usage: | COMMENT |
| LOW⚡ | docker/flex/openemr.sh | 40 | # Usage: | COMMENT |
| LOW⚡ | docker/flex/pcov.sh | 17 | # Usage: | COMMENT |
| LOW⚡ | docker/flex/kcov-wrapper.sh | 12 | # Usage: | COMMENT |
| LOW⚡ | docker/flex/utilities/unlock_admin.sh | 9 | # Usage: | COMMENT |
| LOW | docker/dockerhub/render.sh | 36 | # Usage: | COMMENT |
| LOW | docker/dockerhub/tests/golden-test.sh | 22 | # Usage: | COMMENT |
| LOW | docker/dockerhub/tests/sanity.sh | 26 | # Usage: | COMMENT |
| LOW | docker/dockerhub-fpm/render.sh | 25 | # Usage: | COMMENT |
| LOW | config/config.yaml | 5 | # Example usage: | COMMENT |
| LOW | tests/bats/ci-scripts/validate-source-run/helpers.bash | 35 | # Usage: | COMMENT |
| LOW | tests/bats/ci-scripts/verify-oci-labels/helpers.bash | 70 | # Usage: | COMMENT |
| LOW | …s/bats/ci-scripts/validate-byte-identical/helpers.bash | 119 | # Usage: | COMMENT |
| LOW | tests/Acceptance/bin/upgrade-package.sh | 19 | # Usage: | COMMENT |
| LOW | tests/Acceptance/bin/down-package.sh | 9 | # Usage: | COMMENT |
| LOW | tests/Acceptance/bin/boot-package.sh | 11 | # Usage: | COMMENT |
| LOW | tests/Acceptance/bin/down-docker.sh | 10 | # Usage: | COMMENT |
| LOW | tests/Acceptance/bin/boot-docker.sh | 11 | # Usage: | COMMENT |
| LOW | tests/Acceptance/bin/lib/extract-zip.sh | 49 | # Usage: | COMMENT |
| LOW | contrib/util/openemr-docker-backup.sh | 38 | # Usage: | COMMENT |
| LOW | .github/docker/acceptance-package-compose.yml | 27 | # Usage: | COMMENT |
| LOW | .github/docker/acceptance-docker-compose.yml | 17 | # Usage: | COMMENT |
| LOW | .github/scripts/assert-inputs-nonempty.sh | 16 | # Usage: | COMMENT |
| LOW | .github/scripts/list-manifest-paths.sh | 7 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | docker/container_benchmarking/test_suite.sh | 1440 | # Set it to version 1 (assuming current version is higher) | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 209 | # Check if OpenEMR is configured | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 384 | # Check if OpenEMR is configured | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 388 | # Check if we can access the login page | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 605 | # Check if SSL is configured (container generates selfsigned.cert.pem and webserver.cert.pem symlink) | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 728 | # Check if Redis session handler is configured | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 742 | # Check if php-redis-configured marker exists | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 1166 | # Check if XDebug is configured | COMMENT |
| LOW | docker/container_benchmarking/test_suite.sh | 1170 | # Check if opcache is disabled (XDebug and opcache are incompatible) - use correct php.ini path | COMMENT |
| LOW | docker/container_benchmarking/benchmark.sh | 194 | # Check if status changed to healthy | COMMENT |
| LOW | docker/release/openemr.sh | 254 | # Check if current leader is stale | COMMENT |
| LOW | docker/release/openemr.sh | 307 | # Check if leader has died | COMMENT |
| LOW | docker/binary/openemr.sh | 251 | # Check if current leader is stale | COMMENT |
| LOW | docker/binary/openemr.sh | 304 | # Check if leader has died | COMMENT |
| LOW | docker/flex/openemr.sh | 528 | # Check if current leader is stale | COMMENT |
| LOW | docker/flex/openemr.sh | 572 | # Check if leader has died | COMMENT |
| LOW | docker/flex/openemr.sh | 737 | # Check if composer/vendor build is needed | COMMENT |
| LOW | docker/flex/openemr.sh | 742 | # Check if npm build is needed (node_modules missing/empty OR public missing/empty) | COMMENT |
| LOW | docker/flex/openemr.sh | 922 | # Set ownership to apache user (optimized: use {} + for batch operations) | COMMENT |
| LOW | ci/parse_docker_dir.sh | 49 | # Check if docker_dir ends with "_no-e2e" | COMMENT |
| LOW | ci/parse_docker_dir.sh | 68 | # Check if this is the first occurrence of this PHP version | COMMENT |
| LOW | ci/parse_docker_dir.sh | 76 | # Check if this is the first occurrence of this Node version | COMMENT |
| LOW | .github/workflows/database-version.yml | 57 | # Check if database.sql has the v_database comment | COMMENT |
| LOW | .github/workflows/database-version.yml | 76 | # Check if versions match | COMMENT |
| LOW | .github/workflows/database-version.yml | 168 | # Check if database.sql was modified in this PR | COMMENT |
| LOW | .github/workflows/database-version.yml | 174 | # Check if changes to database.sql include schema-affecting statements | COMMENT |
| LOW | .github/workflows/shellcheck.yml | 132 | # Check if we've seen this hash before | COMMENT |
| LOW | src/Services/Qdm/IndividualResult.php | 169 | # Set agg_results to true if you are collecting aggregate results for multiple patients | COMMENT |
| LOW | …wBoard/Subscriber/PatientFlowBoardEventsSubscriber.php | 72 | # Check if randomization has not yet been done (is random_drug_test NULL). If already done, then exit. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | Documentation/EHI_Export/b10-tables.yml | 3 | # This file is the single source of truth for which database tables are in | COMMENT |
| MEDIUM⚡ | docker/release/xdebug.sh | 115 | # Create the XDebug log file with appropriate permissions. | COMMENT |
| MEDIUM⚡ | docker/release/kcov-wrapper.sh | 21 | # Create the directory where kcov will store coverage reports. | COMMENT |
| MEDIUM⚡ | docker/flex/kcov-wrapper.sh | 26 | # Create the directory where kcov will write coverage reports | COMMENT |
| MEDIUM | tests/bats/docker/helpers.bash | 94 | # Create an executable command stub in a directory. | COMMENT |
| MEDIUM | tests/bats/ci-scripts/sync-byte-identical/helpers.bash | 16 | # Create a fresh temp git repo with master + the target rel branch (default | COMMENT |
| MEDIUM | .github/workflows/shellcheck.yml | 87 | # Create a temp directory to store file hashes | COMMENT |
| MEDIUM | .github/scripts/create-release-tag.sh | 3 | # Create the annotated git tag and GitHub release for a tarball | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | interface/forms/CAMOS/help.html | 37 | The data provided in the three columns upon initial installation of CAMOS is for demonstration purposes only. | CODE |
| LOW | docker/library/couchdb-config-ssl-cert-keys/local.ini | 93 | ; 'username = password' lines. Don't forget to restart CouchDB after | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Documentation/EHI_Export/docs/bower/jquery/jquery.js | 4198 | function getData( data ) { | CODE |
| LOW | …ion/EHI_Export/schemaspy/layout/bower/jquery/jquery.js | 4198 | function getData( data ) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker/container_benchmarking/benchmark.sh | 152 | except Exception as e: | CODE |
| LOW | docker/container_benchmarking/benchmark.sh | 220 | except Exception as e: | CODE |
| LOW | docker/container_benchmarking/benchmark.sh | 667 | except Exception as e: | CODE |
| LOW | docker/container_benchmarking/benchmark.sh | 764 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/lint-workflow-checkout-needed.py | 23 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/lint-workflow-checkout-needed.py | 40 | CODE |