Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
36b70ba
Add Edit Event validation fix (#8876)
sjpadgett Sep 9, 2025
498f029
fix(oeHttpRequest): client is static
kojiromike Sep 5, 2025
572ab2b
chore: eye form escaping and upgrade fix (#8847)
stephenwaite Sep 9, 2025
98a0622
Revert "chore(deps): bump jszip and dwv"
kojiromike Sep 9, 2025
8b86c17
fix(export_labworks): rename Add to avoid conflict
kojiromike Sep 9, 2025
de6eeae
fix(export_xml): avoid global Add function
kojiromike Sep 9, 2025
5a831d8
chore(phpstan): remove unused ignores
kojiromike Sep 9, 2025
779c4eb
test(Installer) (#8873)
kojiromike Sep 10, 2025
4a96400
feat(Installer): provide for arbitrary globals (#8863)
kojiromike Sep 10, 2025
da6f717
ci(deps): bump tj-actions/changed-files from 46 to 47 (#8886)
dependabot[bot] Sep 16, 2025
574a275
ci(test.yml): codecov reporting (#8891)
kojiromike Sep 16, 2025
06f7859
chore: eye form upgrade fixes (#8888)
stephenwaite Sep 17, 2025
5206d35
doc(README): add codecov badge (#8893)
kojiromike Sep 17, 2025
6b567fc
ci(isolated-tests): codecov coverage (#8896)
kojiromike Sep 17, 2025
7a7cdb0
WIP Initial route refactor
adunsulag Jul 3, 2025
dadbd27
Smoke screen test fix execution errors.
adunsulag Jul 5, 2025
e2aba17
Fix forced exit and errors/warnings
adunsulag Jul 5, 2025
3d17971
Get fully working metadata endpoint for unit tests.
adunsulag Jul 5, 2025
2cd64f7
Cleaning up restconfig, fix bearer token
adunsulag Jul 6, 2025
e848f0e
Implemented ApiApplication for authorize.php
adunsulag Jul 7, 2025
43f1f46
Fix Facility Rest Controller tests
adunsulag Jul 7, 2025
6f6e253
Fix practitioner rest controller and warnings
adunsulag Jul 7, 2025
732a1ed
Fixed patient rest controller
adunsulag Jul 7, 2025
4ca5526
Implement integration testing
adunsulag Jul 8, 2025
2d22313
Implement session usage for symfony request
adunsulag Jul 8, 2025
72a6afd
Fix api unit test bugs
adunsulag Jul 8, 2025
8297c08
Fix deprecation warnings
adunsulag Jul 8, 2025
c295f10
Issues #8639,#8646,#8642 SMART on FHIR changes
adunsulag Jul 18, 2025
2e5a86b
PSR fixes and cleanup code
adunsulag Jul 18, 2025
963e18f
Bug fixes, test fixes, session fixes
adunsulag Jul 18, 2025
8534759
Fix api tests, standard api, local api usage.
adunsulag Jul 19, 2025
0e7a9ba
Fixed skip authorization strategy, interface issue
adunsulag Jul 19, 2025
02b535a
Fixed smart controller patientSelectConfirm method
adunsulag Jul 19, 2025
1408a2b
Finished session/globals refactor
adunsulag Jul 20, 2025
250baf2
Fix global session vars in fhir doc api controller
adunsulag Jul 20, 2025
d0ea511
Fix smart authorization controller
adunsulag Jul 21, 2025
83b218d
API changes - response types,session fixes,cleanup
adunsulag Jul 22, 2025
0093b87
Fix preg_match error with null parameters
adunsulag Jul 22, 2025
95a88a1
api bug fix with missing system logger
adunsulag Jul 22, 2025
d5b6391
Fixed up request normalization, more api tests
adunsulag Jul 23, 2025
723b9cd
Bulk FHIR fixes, rest route fixes, provenance fix
adunsulag Jul 23, 2025
4bea1c3
Fix PSR issues, remove unused code
adunsulag Jul 23, 2025
1ef4179
Handle broken group unit test
adunsulag Jul 23, 2025
061200c
Added support for predis storage interface
adunsulag Jul 23, 2025
c908ef0
Fix phpstan issue
adunsulag Jul 23, 2025
c731768
Fix psr style
adunsulag Jul 23, 2025
2a3b8df
Fix unit test on http rest route
adunsulag Jul 23, 2025
2f9944e
Fix api documentation to use new route files
adunsulag Jul 24, 2025
029d5d4
Fix some phpstan issues found
adunsulag Jul 24, 2025
3410ea8
Fixing phpstan issues
adunsulag Jul 24, 2025
67bdb86
fixes for phpstan,oauth2 endpoints,superglobals
adunsulag Jul 24, 2025
1031bb9
More phpstan fixes on rest controllers
adunsulag Jul 24, 2025
63b8108
Fix service base to avoid breaking api contract
adunsulag Jul 24, 2025
9ce3b23
Revert breaking processingresult contract
adunsulag Jul 24, 2025
ea4b2c1
Fix session breaking in auth controller tests
adunsulag Jul 24, 2025
1407353
PSR style fixes
adunsulag Jul 24, 2025
afb4eef
Unit test fixes
adunsulag Jul 24, 2025
021ec9f
More tests to figure out why fhir get isn't working
adunsulag Jul 24, 2025
10cdce8
Fix styling issue
adunsulag Jul 24, 2025
fb88ead
Fix PSR issues
adunsulag Jul 24, 2025
8806bf7
Fix htaccess issues on dispatch/authorize
adunsulag Jul 25, 2025
2ffa913
Fix mod_rewrite changes, errors, scopes v2
adunsulag Jul 28, 2025
316b904
Fix rector function return params
adunsulag Jul 28, 2025
4321959
Fix nginx conf to handle old rewrite
adunsulag Jul 28, 2025
8794ed7
Fix phpstan, more work on scopes v2
adunsulag Jul 28, 2025
5f13c8b
Adding phpstan github definitions
adunsulag Jul 30, 2025
48c092a
Fix phpstan issues
adunsulag Jul 30, 2025
73d6b98
phpstan debug
adunsulag Jul 30, 2025
a309a5a
Remove all dev dependencies except phpstan and phpunit
adunsulag Jul 30, 2025
0ce875a
Add back in symfony/panther dep
adunsulag Jul 30, 2025
a51fb49
Add in rector dev tool for phpstan testing
adunsulag Jul 30, 2025
32389a6
API Scope processing changes, cleanup code
adunsulag Aug 1, 2025
dce0f6c
Scope description fixes, oauth2 claim fixes
adunsulag Aug 6, 2025
3133333
Remove jwk.
adunsulag Aug 6, 2025
4776972
Scope and authorizeUser fixes on oauth2
adunsulag Aug 6, 2025
515bdd1
Fix auth grant test, improved logging.
adunsulag Aug 7, 2025
6a72538
Upgrade admin-client page, update token repo
adunsulag Aug 8, 2025
6e43b01
Fix PSR style issues.
adunsulag Aug 8, 2025
7eefbd0
Better logging for inner exceptions
adunsulag Aug 12, 2025
4a5f44c
Fix urls and error messages on token tools
adunsulag Aug 12, 2025
40b8a18
Fix app registration page.
adunsulag Aug 12, 2025
7140486
Fix issues with bearer token and session.
adunsulag Aug 12, 2025
d75006c
Fix CapabilityStatement metadata
adunsulag Aug 13, 2025
c3fb812
Fix PHPstan issues, ScopeValidatorFactory refactor
adunsulag Aug 14, 2025
fe0c7e0
More scope v1/v2 access fixes on api
adunsulag Aug 14, 2025
5391901
Set operation export to use requestHasScope method
adunsulag Aug 14, 2025
54699f3
Fix capability test from previous metadata changes
adunsulag Aug 14, 2025
d348a5b
Fix dispatch.php to properly handle throwables
adunsulag Aug 14, 2025
0cbf5d8
SMART on FHIR v2 single api test suite
adunsulag Aug 14, 2025
7cb2660
Fix PSR styles
adunsulag Aug 14, 2025
c4064d3
Fix failing tests
adunsulag Aug 14, 2025
0de0bfb
Update PSR
adunsulag Aug 14, 2025
ee9846b
Fix phpstan issues in scope classes
adunsulag Aug 14, 2025
b99e2a4
More phpstan fixes
adunsulag Aug 14, 2025
d99a684
Fix rector issues, verify unit tests.
adunsulag Aug 14, 2025
edace15
Added more tests on security event
adunsulag Aug 14, 2025
31bf6f4
Granular scope permissions with constrained scopes
adunsulag Aug 15, 2025
dd09086
Fix phpstan issue.
adunsulag Aug 15, 2025
21f3edd
Fix phpstan, rector, and copyright issues.
adunsulag Aug 15, 2025
d507a40
Fix psr style fixes
adunsulag Aug 15, 2025
a427cfc
OAuth2 remove superglobals, unit/integration tests
adunsulag Aug 15, 2025
ad88b20
Fix phpstan issues.
adunsulag Aug 15, 2025
bcbac01
Fix unit tests
adunsulag Aug 16, 2025
af72f86
Fix nginx test cases
adunsulag Aug 16, 2025
3715fe0
Fix duplicate lines, backpic global value
adunsulag Aug 21, 2025
a56f289
Fix sessions, escaping, rebase system.
adunsulag Sep 18, 2025
f09cadb
Fix phpstan issues from rebase
adunsulag Sep 18, 2025
ffe81a4
Fix composer.lock issues from rebase
adunsulag Sep 18, 2025
9b03630
Fix composer.json from rebase
adunsulag Sep 18, 2025
feafd16
Fix rector issues.
adunsulag Sep 18, 2025
be09b96
Fix styling issues.
adunsulag Sep 18, 2025
ac164d6
Add back deps, cleanup session classes
adunsulag Sep 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/isolated-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,23 @@ jobs:
--coverage-html=htmlcov \
--testdox

- name: Check if coverage files exist
if: ${{ (success() || failure()) }}
id: check-files
run: |
echo "clover_exists=$(test -f clover.xml && echo true || echo false)" >> $GITHUB_OUTPUT
echo "htmlcov_exists=$(test -d ./htmlcov && echo true || echo false)" >> $GITHUB_OUTPUT
- name: Upload coverage reports
if: ${{ steps.check-files.outputs.clover_exists == 'true' && steps.check-files.outputs.html_exists == 'true' && (success() || failure()) }}
uses: actions/upload-artifact@v4
with:
name: coverage-isolated-tests-php-${{ matrix.php-version }}
path: |
clover.xml
htmlcov/
- name: Upload coverage reports to Codecov
if: ${{ steps.check-files.outputs.clover_exists == 'true' && (success() || failure()) }}
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: clover.xml
2 changes: 1 addition & 1 deletion .github/workflows/shellcheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ jobs:
# if only the workflow file itself is changed in a PR.
# Thus we validate changes to the workflow file.
continue-on-error: true
uses: tj-actions/changed-files@v46
uses: tj-actions/changed-files@v47
with:
# Keep the paths in sync with the paths in the on.push and on.pull_request sections
# See https://github.com/tj-actions/changed-files/blob/v46/README.md#inputs-%EF%B8%8F
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -305,9 +305,9 @@ jobs:
with:
name: htmlcov
path: ./htmlcov/
# - name: Upload coverage reports to Codecov
# if: ${{ env.ENABLE_COVERAGE == 'true' && steps.check-files.outputs.clover_exists == 'true' && (success() || failure()) }}
# uses: codecov/codecov-action@v5
# with:
# token: ${{ secrets.CODECOV_TOKEN }}
# files: coverage.clover.xml
- name: Upload coverage reports to Codecov
if: ${{ env.ENABLE_COVERAGE == 'true' && steps.check-files.outputs.clover_exists == 'true' && (success() || failure()) }}
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: coverage.clover.xml
5 changes: 2 additions & 3 deletions API_README.md
Original file line number Diff line number Diff line change
Expand Up @@ -448,11 +448,10 @@ REST API endpoints are defined in the [primary routes file](_rest_routes.inc.php
endpoint to the OpenEMR controller which handles the request, and also handles the JSON data conversions.

```php
"POST /api/patient" => function () {
RestConfig::authorization_check("patients", "demo");
"POST /api/patient" => function (HttpRestRequest $request) {
RestConfig::request_authorization_check($request, "patients", "demo");
$data = (array) (json_decode(file_get_contents("php://input")));
$return = (new PatientRestController())->post($data);
RestConfig::apiLog($return, $data);
return $return;
}
```
Expand Down
5 changes: 2 additions & 3 deletions FHIR_README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ When registering an API client to use with Swagger the following for the redirec
Request:

```sh
curl -X GET 'https://localhost:9300/apis/fhir/Patient' \
curl -X GET 'https://localhost:9300/apis/default/fhir/Patient' \
-H 'Authorization: Bearer eyJ0b2tlbiI6IjAwNnZ3eGJZYmFrOXlxUjF4U290Y1g4QVVDd3JOcG5yYXZEaFlqaHFjWXJXRGNDQUtFZmJONkh2cElTVkJiaWFobHBqOTBYZmlNRXpiY2FtU01pSHk1UzFlMmgxNmVqZEhcL1ZENlNtaVpTRFRLMmtsWDIyOFRKZzNhQmxMdUloZmNJM3FpMGFKZ003OXdtOGhYT3dpVkx5b3BFRXQ1TlNYNTE3UW5TZ0dsUVdQbG56WjVxOVYwc21tdDlSQ3RvcDV3TEkiLCJzaXRlX2lkIjoiZGVmYXVsdCIsImFwaSI6ImZoaXIifQ=='
```

Expand Down Expand Up @@ -246,9 +246,8 @@ endpoint to the OpenEMR FHIR controller which handles the request, and also hand

```php
"GET /fhir/Patient" => function () {
RestConfig::authorization_check("patients", "demo");
RestConfig::request_authorization_check($request, "patients", "demo");
$return = (new FhirPatientRestController())->getAll($_GET);
RestConfig::apiLog($return);
return $return;
}
```
Expand Down
2 changes: 1 addition & 1 deletion README-Isolated-Testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,4 +108,4 @@ The isolated bootstrap only loads:
- **Fast**: No database connection overhead
- **Reliable**: No external service dependencies
- **Portable**: Runs in any environment with PHP and Composer
- **Isolated**: Tests don't affect each other through shared database state
- **Isolated**: Tests don't affect each other through shared database state
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
[![PHPStan](https://github.com/openemr/openemr/actions/workflows/phpstan.yml/badge.svg)](https://github.com/openemr/openemr/actions/workflows/phpstan.yml)
[![Rector](https://github.com/openemr/openemr/actions/workflows/rector.yml/badge.svg)](https://github.com/openemr/openemr/actions/workflows/rector.yml)
[![ShellCheck](https://github.com/openemr/openemr/actions/workflows/shellcheck.yml/badge.svg)](https://github.com/openemr/openemr/actions/workflows/shellcheck.yml)
[![codecov](https://codecov.io/gh/openemr/openemr/graph/badge.svg?token=7Eu3U1Ozdq)](https://codecov.io/gh/openemr/openemr)

[![Backers on Open Collective](https://opencollective.com/openemr/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/openemr/sponsors/badge.svg)](#sponsors)

Expand Down
Loading