From 3a9cf46ac8a24a46dd867ff9701c01aaa0cf787e Mon Sep 17 00:00:00 2001 From: stephen waite Date: Tue, 21 May 2024 14:17:58 -0400 Subject: [PATCH] Rel 702 picks (#7450) * fix: add missing use statement in facility admin script (#7428) * fix: add missing use statement in facility admin script * add missing use statement in facility add script * fix use statement in create ccr * better placement of use statements per review plus warns fixed * use text() instead * fix: bug (#7435) * fix: bug * else die * fix: bug (#7434) * fix: billing manager To Encounter button to load proper person (#7420) * fix: fix billing manager To Encounter button to load proper person * better to edit the person so it loads the dashboard tab if missing * change button name --- ccr/createCCR.php | 23 ++++++++++++++++------- ccr/createCCRActor.php | 2 +- ccr/createCCRAlerts.php | 18 +++++++++--------- ccr/createCCRImmunization.php | 6 +++--- ccr/createCCRMedication.php | 20 ++++++++++---------- ccr/createCCRProblem.php | 14 +++++++------- ccr/createCCRResult.php | 18 +++++++++--------- ccr/display.php | 2 +- ccr/transmitCCD.php | 6 +++--- interface/billing/billing_report.php | 4 +++- interface/main/messages/messages.php | 8 ++++++-- interface/usergroup/facilities_add.php | 3 ++- interface/usergroup/facility_admin.php | 1 + library/MedEx/API.php | 2 +- 14 files changed, 72 insertions(+), 55 deletions(-) diff --git a/ccr/createCCR.php b/ccr/createCCR.php index 7535008af73..0f399d307e6 100644 --- a/ccr/createCCR.php +++ b/ccr/createCCR.php @@ -12,31 +12,30 @@ * @license https://github.com/openemr/openemr/blob/master/LICENSE GNU General Public License 3 */ +use OpenEMR\Common\Session\SessionUtil; + // check if using the patient portal //(if so, then use the portal authorization) +$notPatientPortal = false; if (isset($_GET['portal_auth'])) { $landingpage = "../portal/index.php"; // Will start the (patient) portal OpenEMR session/cookie. require_once(dirname(__FILE__) . "/../src/Common/Session/SessionUtil.php"); - OpenEMR\Common\Session\SessionUtil::portalSessionStart(); + SessionUtil::portalSessionStart(); if (isset($_SESSION['pid']) && isset($_SESSION['patient_portal_onsite_two'])) { $pid = $_SESSION['pid']; $ignoreAuth = true; global $ignoreAuth; } else { - OpenEMR\Common\Session\SessionUtil::portalSessionCookieDestroy(); + SessionUtil::portalSessionCookieDestroy(); header('Location: ' . $landingpage . '?w'); exit; } } else { // Check authorization. - $thisauth = AclMain::aclCheckCore('patients', 'pat_rep'); - if (!$thisauth) { - echo (new TwigContainer(null, $GLOBALS['kernel']))->getTwig()->render('core/unauthorized.html.twig', ['pageTitle' => xl("Create CCR")]); - exit; - } + $notPatientPortal = true; } require_once(dirname(__FILE__) . "/../interface/globals.php"); @@ -45,8 +44,18 @@ require_once(dirname(__FILE__) . "/transmitCCD.php"); require_once(dirname(__FILE__) . "/../custom/code_types.inc.php"); +use OpenEMR\Common\Acl\AclMain; +use OpenEMR\Common\Twig\TwigContainer; use PHPMailer\PHPMailer\PHPMailer; +if ($notPatientPortal) { + $thisauth = AclMain::aclCheckCore('patients', 'pat_rep'); + if (!$thisauth) { + echo (new TwigContainer(null, $GLOBALS['kernel']))->getTwig()->render('core/unauthorized.html.twig', ['pageTitle' => xl("Create CCR")]); + exit; + } +} + function createCCR($action, $raw = "no", $requested_by = "") { diff --git a/ccr/createCCRActor.php b/ccr/createCCRActor.php index cbb728e950d..70fc6272a96 100755 --- a/ccr/createCCRActor.php +++ b/ccr/createCCRActor.php @@ -141,7 +141,7 @@ $e_InformationSystem = $ccr->createElement('InformationSystem'); $e_Actor->appendChild($e_InformationSystem); - $e_Name = $ccr->createElement('Name', $row1['facility']); + $e_Name = $ccr->createElement('Name', text($row1['facility'] ?? '')); $e_InformationSystem->appendChild($e_Name); $e_Type = $ccr->createElement('Type', 'Facility'); diff --git a/ccr/createCCRAlerts.php b/ccr/createCCRAlerts.php index 799d3f92e7d..ba96285b01d 100644 --- a/ccr/createCCRAlerts.php +++ b/ccr/createCCRAlerts.php @@ -36,7 +36,7 @@ $e_DateTime = $ccr->createElement('DateTime'); $e_Alert->appendChild($e_DateTime); - $date = date_create($row['date']); + $date = date_create($row['date'] ?? ''); $e_ExactDateTime = $ccr->createElement('ExactDateTime', $date->format('Y-m-d\TH:i:s\Z')); $e_DateTime->appendChild($e_ExactDateTime); @@ -44,7 +44,7 @@ $e_IDs = $ccr->createElement('IDs'); $e_Alert->appendChild($e_IDs); - $e_ID = $ccr->createElement('ID', $row['pid']); + $e_ID = $ccr->createElement('ID', $row['pid'] ?? ''); $e_IDs->appendChild($e_ID); $e_IDs->appendChild(sourceType($ccr, $sourceID)); @@ -52,19 +52,19 @@ $e_Type = $ccr->createElement('Type'); $e_Alert->appendChild($e_Type); - $e_Text = $ccr->createElement('Text', $row['type'] . '-' . $row['alert_title']); + $e_Text = $ccr->createElement('Text', ($row['type'] ?? '') . '-' . ($row['alert_title'] ?? '')); $e_Type->appendChild($e_Text); $e_Description = $ccr->createElement('Description'); $e_Alert->appendChild($e_Description); - $e_Text = $ccr->createElement('Text', $row['code_text']); + $e_Text = $ccr->createElement('Text', $row['code_text'] ?? ''); $e_Description->appendChild($e_Text); $e_Code = $ccr->createElement('Code'); $e_Description->appendChild($e_Code); - $e_Value = $ccr->createElement('Value', $row['diagnosis']); + $e_Value = $ccr->createElement('Value', $row['diagnosis'] ?? ''); $e_Code->appendChild($e_Value); $e_Alert->appendChild(sourceType($ccr, $sourceID)); @@ -84,13 +84,13 @@ $e_DateTime = $ccr->createElement('DateTime'); $e_EnvironmentalAgent->appendChild($e_DateTime); - $e_ExactDateTime = $ccr->createElement('ExactDateTime', $row['date']); + $e_ExactDateTime = $ccr->createElement('ExactDateTime', $row['date'] ?? ''); $e_DateTime->appendChild($e_ExactDateTime); $e_Description = $ccr->createElement('Description'); $e_EnvironmentalAgent->appendChild($e_Description); - $e_Text = $ccr->createElement('Text', $row['alert_title']); + $e_Text = $ccr->createElement('Text', $row['alert_title'] ?? ''); $e_Description->appendChild($e_Text); $e_Code = $ccr->createElement('Code'); @@ -102,7 +102,7 @@ $e_Status = $ccr->createElement('Status'); $e_EnvironmentalAgent->appendChild($e_Status); - $e_Text = $ccr->createElement('Text', $row['outcome']); + $e_Text = $ccr->createElement('Text', $row['outcome'] ?? ''); $e_Status->appendChild($e_Text); $e_EnvironmentalAgent->appendChild(sourceType($ccr, $sourceID)); @@ -113,7 +113,7 @@ $e_Description = $ccr->createElement('Description'); $e_Reaction->appendChild($e_Description); - $e_Text = $ccr->createElement('Text', $row['reaction']); + $e_Text = $ccr->createElement('Text', $row['reaction'] ?? ''); $e_Description->appendChild($e_Text); $e_Status = $ccr->createElement('Status'); diff --git a/ccr/createCCRImmunization.php b/ccr/createCCRImmunization.php index 79027cce675..2bb080e04e0 100644 --- a/ccr/createCCRImmunization.php +++ b/ccr/createCCRImmunization.php @@ -34,7 +34,7 @@ $e_DateTime = $ccr->createElement('DateTime'); $e_Immunization->appendChild($e_DateTime); - $date = date_create($row['administered_date']); + $date = date_create($row['administered_date'] ?? ''); $e_ExactDateTime = $ccr->createElement('ExactDateTime', $date->format('Y-m-d\TH:i:s\Z')); $e_DateTime->appendChild($e_ExactDateTime); @@ -59,7 +59,7 @@ $e_ProductName = $ccr->createElement('ProductName'); $e_Product->appendChild($e_ProductName); - $e_Text = $ccr->createElement('Text', $row['title']); + $e_Text = $ccr->createElement('Text', $row['title'] ?? ''); $e_ProductName->appendChild($e_Text); $e_Directions = $ccr->createElement('Directions'); @@ -71,7 +71,7 @@ $e_Description = $ccr->createElement('Description'); $e_Direction->appendChild($e_Description); - $e_Text = $ccr->createElement('Text', $row['note']); + $e_Text = $ccr->createElement('Text', $row['note'] ?? ''); $e_Description->appendChild($e_Text); $e_Code = $ccr->createElement('Code'); diff --git a/ccr/createCCRMedication.php b/ccr/createCCRMedication.php index 223f4ef4b09..288c70e2ebb 100644 --- a/ccr/createCCRMedication.php +++ b/ccr/createCCRMedication.php @@ -34,7 +34,7 @@ $e_DateTime = $ccr->createElement('DateTime'); $e_Medication->appendChild($e_DateTime); - $date = date_create($value['date_added']); + $date = date_create($value['date_added'] ?? ''); $e_ExactDateTime = $ccr->createElement('ExactDateTime', $date->format('Y-m-d\TH:i:s\Z')); $e_DateTime->appendChild($e_ExactDateTime); @@ -48,7 +48,7 @@ $e_Status = $ccr->createElement('Status'); $e_Medication->appendChild($e_Status); - $e_Text = $ccr->createElement('Text', $value['active']); + $e_Text = $ccr->createElement('Text', $value['active'] ?? ''); $e_Status->appendChild($e_Text); $e_Medication->appendChild(sourceType($ccr, $sourceID)); @@ -59,13 +59,13 @@ $e_ProductName = $ccr->createElement('ProductName'); $e_Product->appendChild($e_ProductName); - $e_Text = $ccr->createElement('Text', $value['drug']); + $e_Text = $ccr->createElement('Text', $value['drug'] ?? ''); $e_ProductName->appendChild(clone $e_Text); $e_Code = $ccr->createElement('Code'); $e_ProductName->appendChild($e_Code); - $e_Value = $ccr->createElement('Value', $value['rxnorm_drugcode']); + $e_Value = $ccr->createElement('Value', $value['rxnorm_drugcode'] ?? ''); $e_Code->appendChild($e_Value); $e_Value = $ccr->createElement('CodingSystem', 'RxNorm'); @@ -74,25 +74,25 @@ $e_Strength = $ccr->createElement('Strength'); $e_Product->appendChild($e_Strength); - $e_Value = $ccr->createElement('Value', $value['size']); + $e_Value = $ccr->createElement('Value', $value['size'] ?? ''); $e_Strength->appendChild($e_Value); $e_Units = $ccr->createElement('Units'); $e_Strength->appendChild($e_Units); - $e_Unit = $ccr->createElement('Unit', $value['title']); + $e_Unit = $ccr->createElement('Unit', $value['title'] ?? ''); $e_Units->appendChild($e_Unit); $e_Form = $ccr->createElement('Form'); $e_Product->appendChild($e_Form); - $e_Text = $ccr->createElement('Text', $value['form']); + $e_Text = $ccr->createElement('Text', $value['form'] ?? ''); $e_Form->appendChild($e_Text); $e_Quantity = $ccr->createElement('Quantity'); $e_Medication->appendChild($e_Quantity); - $e_Value = $ccr->createElement('Value', $value['quantity']); + $e_Value = $ccr->createElement('Value', $value['quantity'] ?? ''); $e_Quantity->appendChild($e_Value); $e_Units = $ccr->createElement('Units'); @@ -131,7 +131,7 @@ $e_Instruction = $ccr->createElement('Instruction'); $e_PatientInstructions->appendChild($e_Instruction); - $e_Text = $ccr->createElement('Text', $value['note']); + $e_Text = $ccr->createElement('Text', $value['note'] ?? ''); $e_Instruction->appendChild($e_Text); $e_Refills = $ccr->createElement('Refills'); @@ -140,6 +140,6 @@ $e_Refill = $ccr->createElement('Refill'); $e_Refills->appendChild($e_Refill); - $e_Number = $ccr->createElement('Number', $value['refills']); + $e_Number = $ccr->createElement('Number', $value['refills'] ?? ''); $e_Refill->appendChild($e_Number); } while ($value = sqlFetchArray($result)); diff --git a/ccr/createCCRProblem.php b/ccr/createCCRProblem.php index 83404c1c86c..e8ede496ca5 100644 --- a/ccr/createCCRProblem.php +++ b/ccr/createCCRProblem.php @@ -38,7 +38,7 @@ $e_DateTime = $ccr->createElement('DateTime'); $e_Problem->appendChild($e_DateTime); - $date = date_create($row['date']); + $date = date_create($row['date'] ?? ''); $e_ExactDateTime = $ccr->createElement('ExactDateTime', $date->format('Y-m-d\TH:i:s\Z')); $e_DateTime->appendChild($e_ExactDateTime); @@ -46,7 +46,7 @@ $e_IDs = $ccr->createElement('IDs'); $e_Problem->appendChild($e_IDs); - $e_ID = $ccr->createElement('ID', $row['pid']); + $e_ID = $ccr->createElement('ID', $row['pid'] ?? ''); $e_IDs->appendChild($e_ID); $e_IDs->appendChild(sourceType($ccr, $sourceID)); @@ -61,13 +61,13 @@ $e_Description = $ccr->createElement('Description'); $e_Problem->appendChild($e_Description); - $e_Text = $ccr->createElement('Text', lookup_code_descriptions($row['diagnosis'])); + $e_Text = $ccr->createElement('Text', lookup_code_descriptions($row['diagnosis'] ?? '')); $e_Description->appendChild($e_Text); $e_Code = $ccr->createElement('Code'); $e_Description->appendChild($e_Code); - $e_Value = $ccr->createElement('Value', $row['diagnosis']); + $e_Value = $ccr->createElement('Value', $row['diagnosis'] ?? ''); $e_Code->appendChild($e_Value); $e_Value = $ccr->createElement('CodingSystem', 'ICD9-CM'); @@ -88,12 +88,12 @@ $e_Actor = $ccr->createElement('Actor'); $e_Source->appendChild($e_Actor); - $e_ActorID = $ccr->createElement('ActorID', $uuid); + $e_ActorID = $ccr->createElement('ActorID', $uuid ?? ''); $e_Actor->appendChild($e_ActorID); $e_Problem->appendChild($e_Source); - $e_CommentID = $ccr->createElement('CommentID', $row['comments']); + $e_CommentID = $ccr->createElement('CommentID', $row['comments'] ?? ''); $e_Problem->appendChild($e_CommentID); $e_Episodes = $ccr->createElement('Episodes'); @@ -124,7 +124,7 @@ $e_Description = $ccr->createElement('Description'); $e_HealthStatus->appendChild($e_Description); - $e_Text = $ccr->createElement('Text', $row['reason']); + $e_Text = $ccr->createElement('Text', $row['reason'] ?? ''); $e_Description->appendChild($e_Text); $e_HealthStatus->appendChild(sourceType($ccr, $sourceID)); diff --git a/ccr/createCCRResult.php b/ccr/createCCRResult.php index 8cfdad4ae88..f77dd05f2f3 100644 --- a/ccr/createCCRResult.php +++ b/ccr/createCCRResult.php @@ -34,7 +34,7 @@ $e_DateTime = $ccr->createElement('DateTime'); $e_Result->appendChild($e_DateTime); - $date = date_create($row['date']); + $date = date_create($row['date'] ?? ''); $e_ExactDateTime = $ccr->createElement('ExactDateTime', $date->format('Y-m-d\TH:i:s\Z')); $e_DateTime->appendChild($e_ExactDateTime); @@ -53,7 +53,7 @@ $e_Actor = $ccr->createElement('Actor'); $e_Source->appendChild($e_Actor); - $e_ActorID = $ccr->createElement('ActorID', $uuid); + $e_ActorID = $ccr->createElement('ActorID', $uuid ?? ''); //$e_ActorID = $ccr->createElement('ActorID',${"labID{$row['lab']}"}); $e_Actor->appendChild($e_ActorID); @@ -78,7 +78,7 @@ $e_Description = $ccr->createElement('Description'); $e_Test->appendChild($e_Description); - $e_Text = $ccr->createElement('Text', $row['name']); + $e_Text = $ccr->createElement('Text', $row['name'] ?? ''); $e_Description->appendChild($e_Text); $e_Code = $ccr->createElement('Code'); @@ -93,13 +93,13 @@ $e_Actor = $ccr->createElement('Actor'); $e_Source->appendChild($e_Actor); - $e_ActorID = $ccr->createElement('ActorID', $uuid); + $e_ActorID = $ccr->createElement('ActorID', $uuid ?? ''); $e_Actor->appendChild($e_ActorID); $e_TestResult = $ccr->createElement('TestResult'); $e_Test->appendChild($e_TestResult); - $e_Value = $ccr->createElement('Value', $row['result']); + $e_Value = $ccr->createElement('Value', $row['result'] ?? ''); $e_TestResult->appendChild($e_Value); $e_Code = $ccr->createElement('Code'); @@ -111,7 +111,7 @@ $e_Description = $ccr->createElement('Description'); $e_TestResult->appendChild($e_Description); - $e_Text = $ccr->createElement('Text', $row['result']); + $e_Text = $ccr->createElement('Text', $row['result'] ?? ''); $e_Description->appendChild($e_Text); //if($row['abnormal'] == '' ) { @@ -121,7 +121,7 @@ $e_Normal = $ccr->createElement('Normal'); $e_NormalResult->appendChild($e_Normal); - $e_Value = $ccr->createElement('Value', $row['range']); + $e_Value = $ccr->createElement('Value', $row['range'] ?? ''); $e_Normal->appendChild($e_Value); $e_Units = $ccr->createElement('Units'); @@ -136,14 +136,14 @@ $e_Actor = $ccr->createElement('Actor'); $e_Source->appendChild($e_Actor); - $e_ActorID = $ccr->createElement('ActorID', $uuid); + $e_ActorID = $ccr->createElement('ActorID', $uuid ?? ''); $e_Actor->appendChild($e_ActorID); //} else { $e_Flag = $ccr->createElement('Flag'); $e_Test->appendChild($e_Flag); - $e_Text = $ccr->createElement('Text', $row['abnormal']); + $e_Text = $ccr->createElement('Text', $row['abnormal'] ?? ''); $e_Flag->appendChild($e_Text); //} diff --git a/ccr/display.php b/ccr/display.php index 2261340208f..99ce78b3c9e 100644 --- a/ccr/display.php +++ b/ccr/display.php @@ -32,7 +32,7 @@ if (!$d->can_access()) { echo $twig->getTwig()->render("templates/error/400.html.twig", ['statusCode' => 401, 'errorMessage' => 'Access Denied']); exit; - } else if ($d->is_deleted()) { + } elseif ($d->is_deleted()) { echo $twig->getTwig()->render("templates/error/404.html.twig"); exit; } diff --git a/ccr/transmitCCD.php b/ccr/transmitCCD.php index 4da3fe42280..5eca0299a21 100644 --- a/ccr/transmitCCD.php +++ b/ccr/transmitCCD.php @@ -168,7 +168,7 @@ function transmitCCD($pid, $ccd_out, $recipient, $requested_by, $xml_type = "CCD // if we have a filename from our database, we want to send that $att_filename = $filename; $extension = ""; // no extension needed - } else if (!empty($patientName2)) { + } elseif (!empty($patientName2)) { //spaces are the argument delimiter for the phiMail API calls and must be removed // CCDA format requires patient name in last, first format $att_filename = str_replace(" ", "_", $xml_type . "_" . $patientData[0]['lname'] @@ -231,9 +231,9 @@ function transmitCCD($pid, $ccd_out, $recipient, $requested_by, $xml_type = "CCD // MU2 CareCoordination added the need to send CCDAs formatted as html,pdf, or xml if ($format_type == 'html') { $add_type = "TEXT"; - } else if ($format_type == 'pdf') { + } elseif ($format_type == 'pdf') { $add_type = "RAW"; - } else if ($format_type == 'xml') { + } elseif ($format_type == 'xml') { $add_type = $xml_type == "CCR" ? "CCR" : "CDA"; } else { // unsupported format diff --git a/interface/billing/billing_report.php b/interface/billing/billing_report.php index fe2ccb60c62..fd2f92bfbbd 100644 --- a/interface/billing/billing_report.php +++ b/interface/billing/billing_report.php @@ -347,9 +347,11 @@ function toencounter(pid, pubpid, pname, enc, datestr, dobstr) { top.restoreSession(); encurl = 'patient_file/encounter/encounter_top.php?set_encounter=' + encodeURIComponent(enc) + '&pid=' + encodeURIComponent(pid); + paturl = 'patient_file/summary/demographics_full.php?pid=' + encodeURIComponent(pid); parent.left_nav.setPatient(pname, pid, pubpid, '', dobstr); parent.left_nav.setEncounter(datestr, enc, 'enc'); parent.left_nav.loadFrame('enc2', 'enc', encurl); + parent.left_nav.loadFrame('dem1', 'pat', paturl); } // Process a click to go to an patient. @@ -1081,7 +1083,7 @@ function criteriaSelectHasValue(select) { // Changed "To xxx" buttons to allow room for encounter date display 2/17/09 JCH $lhtml .= "" . xlt('Patient') . ""; + top.window.parent.left_nav.setPatientEncounter(EncounterIdArray[" . attr($iter['enc_pid']) . "],EncounterDateArray[" . attr($iter['enc_pid']) . "], CalendarCategoryArray[" . attr($iter['enc_pid']) . "])\">" . xlt('Insurance') . ""; $is_edited = $iter['mboid'] ? 'btn-success' : 'btn-secondary'; $title = $iter['mboid'] ? xlt("This claim has HCFA 1500 miscellaneous billing options") : xlt("Click to add HCFA 1500 miscellaneous billing options"); $lhtml .= "" . xlt('MBO ') . ""; diff --git a/interface/main/messages/messages.php b/interface/main/messages/messages.php index 29d23e5ef6c..ba0ffccf490 100644 --- a/interface/main/messages/messages.php +++ b/interface/main/messages/messages.php @@ -300,8 +300,12 @@ $datetime = isset($_POST['form_datetime']) ? DateTimeToYYYYMMDDHHMMSS($_POST['form_datetime']) : ''; foreach ($assigned_to_list as $assigned_to) { if ($noteid && $assigned_to != '-patient-') { - updatePnote($noteid, $note, $form_note_type, $assigned_to, $form_message_status, $datetime); - $noteid = ''; + if (checkPnotesNoteId($note_id, $_SESSION['authUser'])) { + updatePnote($noteid, $note, $form_note_type, $assigned_to, $form_message_status, $datetime); + $noteid = ''; + } else { + die("Message is not assigned to you. Adding is disallowed."); + } } else { if ($noteid && $assigned_to == '-patient-') { // When $assigned_to == '-patient-' we don't update the current note, but diff --git a/interface/usergroup/facilities_add.php b/interface/usergroup/facilities_add.php index a966b467379..684b47f1479 100644 --- a/interface/usergroup/facilities_add.php +++ b/interface/usergroup/facilities_add.php @@ -13,10 +13,11 @@ require_once("../globals.php"); require_once("$srcdir/options.inc.php"); +use OpenEMR\Common\Acl\AclMain; use OpenEMR\Common\Csrf\CsrfUtils; +use OpenEMR\Common\Twig\TwigContainer; use OpenEMR\Core\Header; use OpenEMR\Services\FacilityService; -use OpenEMR\Common\Twig\TwigContainer; // Ensure authorized if (!AclMain::aclCheckCore('admin', 'users')) { diff --git a/interface/usergroup/facility_admin.php b/interface/usergroup/facility_admin.php index 9f91ff73dc1..a328a03d3af 100644 --- a/interface/usergroup/facility_admin.php +++ b/interface/usergroup/facility_admin.php @@ -13,6 +13,7 @@ require_once("../globals.php"); require_once("$srcdir/options.inc.php"); +use OpenEMR\Common\Acl\AclMain; use OpenEMR\Common\Csrf\CsrfUtils; use OpenEMR\Common\Twig\TwigContainer; use OpenEMR\Core\Header; diff --git a/library/MedEx/API.php b/library/MedEx/API.php index a9722a220f2..2df71d2d275 100644 --- a/library/MedEx/API.php +++ b/library/MedEx/API.php @@ -1665,7 +1665,7 @@ public function preferences($prefs = '')
MedEx
- +