4 * Questionnaire Template
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'];
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" />
46 var fhirQ
= <?php
echo js_escape($q_json); ?
>;
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');
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()
64 LForms
.Util
.addFormToPage(data
, 'formContainer');
70 <div
class="container-xl mt-2">
72 <button
class="btn btn-sm btn-primary btn-save" onclick
="saveQR()"><?php
echo xlt("Save FHIR QuestionnaireResponse"); ?
></button
>
74 <div id
=formContainer
></div
>
76 <button
class="btn btn-sm btn-primary btn-save" onclick
="saveQR()"><?php
echo xlt("Save FHIR QuestionnaireResponse"); ?
></button
>
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
>