4 * PractitionerRestController
7 * @link http://www.open-emr.org
8 * @author Matthew Vita <matthewvita48@gmail.com>
9 * @author Yash Bothra <yashrajbothra786gmail.com>
10 * @copyright Copyright (c) 2018 Matthew Vita <matthewvita48@gmail.com>
11 * @license https://github.com/openemr/openemr/blob/master/LICENSE GNU General Public License 3
14 namespace OpenEMR\RestControllers
;
16 use OpenEMR\Services\PractitionerService
;
17 use OpenEMR\RestControllers\RestControllerHelper
;
19 class PractitionerRestController
21 private $practitionerService;
24 * White list of practitioner search fields
26 private const WHITELISTED_FIELDS
= array(
54 "state_license_number",
58 public function __construct()
60 $this->practitionerService
= new PractitionerService();
64 * Fetches a single practitioner resource by id.
65 * @param $uuid- The practitioner uuid identifier in string format.
67 public function getOne($uuid)
69 $processingResult = $this->practitionerService
->getOne($uuid);
71 if (!$processingResult->hasErrors() && count($processingResult->getData()) == 0) {
72 return RestControllerHelper
::handleProcessingResult($processingResult, 404);
75 return RestControllerHelper
::handleProcessingResult($processingResult, 200);
79 * Returns practitioner resources which match an optional search criteria.
81 public function getAll($search = array())
83 $validSearchFields = $this->practitionerService
->filterData($search, self
::WHITELISTED_FIELDS
);
84 $processingResult = $this->practitionerService
->getAll($validSearchFields);
85 return RestControllerHelper
::handleProcessingResult($processingResult, 200, true);
89 * Process a HTTP POST request used to create a practitioner record.
90 * @param $data - array of practitioner fields.
91 * @return a 201/Created status code and the practitioner identifier if successful.
93 public function post($data)
95 $filteredData = $this->practitionerService
->filterData($data, self
::WHITELISTED_FIELDS
);
96 $processingResult = $this->practitionerService
->insert($filteredData);
97 return RestControllerHelper
::handleProcessingResult($processingResult, 201);
101 * Processes a HTTP PATCH request used to update an existing practitioner record.
102 * @param $uuid - The practitioner uuid identifier in string format.
103 * @param $data - array of practitioner fields (full resource).
104 * @return a 200/Ok status code and the practitioner resource.
106 public function patch($uuid, $data)
108 $filteredData = $this->practitionerService
->filterData($data, self
::WHITELISTED_FIELDS
);
109 $processingResult = $this->practitionerService
->update($uuid, $filteredData);
110 return RestControllerHelper
::handleProcessingResult($processingResult, 200);