php8.1 fixes (#5676)
[openemr.git] / portal / questionnaire_template.php
blob0a107eda617a796401fef6784fca9dd58a482860
1 <?php
3 /**
4 * Questionnaire Template
6 * @package OpenEMR
7 * @link https://www.open-emr.org
8 * @author Jerry Padgett <sjpadgett@gmail.com>
9 * @copyright Copyright (c) 2022 Jerry Padgett <sjpadgett@gmail.com>
10 * @license https://github.com/openemr/openemr/blob/master/LICENSE GNU General Public License 3
13 require_once(__DIR__ . "/../src/Common/Forms/CoreFormToPortalUtility.php");
15 use OpenEMR\Common\Forms\CoreFormToPortalUtility;
17 // block of code to securely support use by the patient portal
18 $patientPortalSession = CoreFormToPortalUtility::isPatientPortalSession($_GET);
19 if ($patientPortalSession) {
20 $ignoreAuth_onsite_portal = true;
23 require_once(__DIR__ . "/../interface/globals.php");
25 use OpenEMR\Common\Csrf\CsrfUtils;
26 use OpenEMR\Core\Header;
27 use OpenEMR\Services\QuestionnaireService;
29 $q = $_REQUEST['qId'] ?? null;
30 $q_type = $_REQUEST['type'] ?? null;
31 $q_url = $_REQUEST['url'] ?? null;
32 $q_name = $_REQUEST['name'] ?? null;
33 $q_form_code = $_REQUEST['form_code'] ?? null;
35 if (!empty($q) && empty($url)) {
36 $templateService = new QuestionnaireService();
37 $resource = $templateService->fetchQuestionnaireResource($q, $q);
38 $q_json = $resource['questionnaire'];
41 <head>
42 <title><?php echo xlt('Portal'); ?> | <?php echo xlt('Questionnaire'); ?></title>
43 <?php Header::setupHeader([]); ?>
44 <link href="<?php echo $GLOBALS['assets_static_relative']; ?>/lforms/webcomponent/styles.css" media="screen" rel="stylesheet" />
45 <script>
46 var fhirQ = <?php echo js_escape($q_json); ?>;
47 function saveQR() {
48 let qr = LForms.Util.getFormFHIRData('QuestionnaireResponse', 'R4');
49 let formElement = document.getElementById("formContainer");
50 let data = LForms.Util.getUserData(formElement, true, true, true);
51 window.alert(JSON.stringify(data, null, 2));
52 window.alert(JSON.stringify(qr, null, 2));
54 <?php if ($q_type != 'loinc_form') { ?>
55 window.onload = function () {
56 LForms.Util.addFormToPage(fhirQ, 'formContainer');
58 <?php } ?>
59 <?php if ($q_type == 'loinc_form') { ?>
60 let url = <?php echo js_escape($q_url); ?> + '?loinc_num=' + encodeURIComponent(<?php echo js_escape($q_form_code); ?>);
61 fetch(url).then((response) => {
62 return response.json()
63 }).then((data) => {
64 LForms.Util.addFormToPage(data, 'formContainer');
66 <?php } ?>
67 </script>
68 </head>
69 <body>
70 <div class="container-xl mt-2">
71 <div>
72 <button class="btn btn-sm btn-primary btn-save" onclick="saveQR()"><?php echo xlt("Save FHIR QuestionnaireResponse"); ?></button>
73 </div>
74 <div id=formContainer></div>
75 <div>
76 <button class="btn btn-sm btn-primary btn-save" onclick="saveQR()"><?php echo xlt("Save FHIR QuestionnaireResponse"); ?></button>
77 </div>
78 </div>
79 <script src="<?php echo $GLOBALS['assets_static_relative']; ?>/lforms/webcomponent/assets/lib/zone.min.js"></script>
80 <script src="<?php echo $GLOBALS['assets_static_relative']; ?>/lforms/webcomponent/scripts.js"></script>
81 <script src="<?php echo $GLOBALS['assets_static_relative']; ?>/lforms/webcomponent/runtime-es2015.js"></script>
82 <script src="<?php echo $GLOBALS['assets_static_relative']; ?>/lforms/webcomponent/polyfills-es2015.js"></script>
83 <script src="<?php echo $GLOBALS['assets_static_relative']; ?>/lforms/webcomponent/main-es2015.js"></script>
84 <script src="<?php echo $GLOBALS['assets_static_relative']; ?>/lforms/fhir/R4/lformsFHIR.min.js"></script>
85 </body>