You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

128 lines
3.8 KiB

<?php
/**
* Testing script for the local/internal use of the fhir api
*
* @package OpenEMR
* @link http://www.open-emr.org
* @author Brady Miller <brady.g.miller@gmail.com>
* @author Stephen Waite <stephen.waite@cmsvt.com>
* @copyright Copyright (c) 2019 Brady Miller <brady.g.miller@gmail.com>
* @copyright Copyright (c) 2022 Stephen Waite <stephen.waite@cmsvt.com>
* @license https://github.com/openemr/openemr/blob/master/LICENSE GNU General Public License 3
*/
// comment below exit command to run this test script
// (when done, remember to uncomment it again)
exit;
require_once(__DIR__ . "/../../interface/globals.php");
use OpenEMR\Common\Csrf\CsrfUtils;
use OpenEMR\Core\Header;
?>
<html>
<head>
<?php Header::setupAssets('jquery'); ?>
<script>
function testAjaxApi() {
$.ajax({
type: 'GET',
url: '../../apis/api/facility',
dataType: 'json',
headers: {
'apicsrftoken': <?php echo js_escape(CsrfUtils::collectCsrfToken('api')); ?>
},
success: function(thedata){
let thedataJSON = JSON.stringify(thedata);
$("#ajaxapi").html(thedataJSON);
},
error:function(){
}
});
}
function testFetchApi() {
fetch('../../apis/api/facility', {
credentials: 'same-origin',
method: 'GET',
headers: new Headers({
'apicsrftoken': <?php echo js_escape(CsrfUtils::collectCsrfToken('api')); ?>
})
})
.then(response => response.json())
.then(data => {
let dataJSON = JSON.stringify(data);
document.getElementById('fetchapi').innerHTML = dataJSON;
})
.catch(error => console.error(error))
}
$(function () {
testAjaxApi();
testFetchApi();
});
</script>
</head>
<?php
// CALL the api via a local jquery ajax call
// See above testAjaxApi() function for details.
echo "<b>local jquery ajax call:</b><br />";
echo "<div id='ajaxapi'></div>";
echo "<br /><br />";
// CALL the api via a local fetch call
// See above testFetchApi() function for details.
echo "<b>local fetch call:</b><br />";
echo "<div id='fetchapi'></div>";
echo "<br /><br />";
// CALL the api via route handler
// This allows same notation as the calls in the api (ie. '/api/facility'), but
// is limited to get requests at this time.
use OpenEMR\Common\Http\HttpRestRequest;
use OpenEMR\Common\Http\HttpRestRouteHandler;
require_once(__DIR__ . "/../../_rest_config.php");
$gbl = RestConfig::GetInstance();
$gbl::setNotRestCall();
$restRequest = new HttpRestRequest($gbl, $_SERVER);
$restRequest->setRequestMethod("GET");
$restRequest->setRequestURI("/fhir/encounter");
$getParams = $restRequest->getQueryParams();
// below will return as json
echo "<b>api via route handler call returning json:</b><br />";
echo HttpRestRouteHandler::dispatch($gbl::$ROUTE_MAP, $restRequest, 'direct-json');
echo "<br /><br />";
// below will return as php array
echo "<b>api via route handler call returning php array:</b><br />";
echo print_r(HttpRestRouteHandler::dispatch($gbl::$ROUTE_MAP, $restRequest, 'direct'));
echo "<br /><br />";
// CALL the underlying service that is used by the api
use OpenEMR\Services\FHIR\FhirEncounterService;
echo "<b>service call:</b><br />";
echo json_encode((new FhirEncounterService())->getProfileURIs());
echo "<br /><br />";
// CALL the underlying controller that is used by the api
use OpenEMR\RestControllers\FHIR\FhirEncounterRestController;
echo "<b>controller call:</b><br />";
echo json_encode((new FhirEncounterRestController())->getAll($getParams));
echo "<br /><br />";
?>
</html>