Add back RingCentral to our FaxSMS Module (#7542)
[openemr.git] / src / RestControllers / TransactionRestController.php
blobede23325a5082be8fdeebc7f6a4215df06cc36e8
1 <?php
3 /**
4 * PatientRestController
5 * This controller creates, updates, and retrieves transactions
7 * @package OpenEMR
8 * @link http://www.open-emr.org
9 * @author Jonathan Moore <Jdcmoore@aol.com>
10 * @copyright Copyright (c) 2022 Jonathan Moore <Jdcmoore@aol.com>
11 * @license https://github.com/openemr/openemr/blob/master/LICENSE GNU General Public License 3
14 namespace OpenEMR\RestControllers;
16 use OpenEMR\RestControllers\RestControllerHelper;
17 use OpenEMR\Services\PatientTransactionService;
18 use OpenEMR\Services\TransactionService;
19 use OpenEMR\Validators\ProcessingResult;
21 class TransactionRestController
23 /**
24 * @var PatientTransactionService
26 private $patientTransactionService;
28 /**
29 * White list of patient search fields
31 private const SUPPORTED_SEARCH_FIELDS = array(
32 'pid'
35 public function __construct()
37 $this->patientTransactionService = new PatientTransactionService();
40 /**
41 * Process a HTTP POST request used to create a patient record.
43 * @param $data - array of patient fields.
44 * @return a 201/Created status code and the patient identifier if successful.
46 public function CreateTransaction($pid, $data)
48 $processingResult = new ProcessingResult();
50 $serviceValidation = $this->patientTransactionService->validate($data);
51 $controllerValidationResult = RestControllerHelper::validationHandler($serviceValidation);
52 if (is_array($controllerValidationResult)) {
53 $processingResult->setValidationMessages($controllerValidationResult);
57 $serviceResult = $this->patientTransactionService->insert($pid, $data);
58 $processingResult->addData($serviceResult);
60 return RestControllerHelper::handleProcessingResult($processingResult, 201, true);
63 public function UpdateTransaction($tid, $data)
65 $processingResult = new ProcessingResult();
67 $data = $this->patientTransactionService->update($tid, $data);
68 $processingResult->addData($data);
69 return RestControllerHelper::handleProcessingResult($processingResult, 200, false);
72 /**
73 * Returns patient resources which match an optional search criteria.
75 public function GetPatientTransactions($pid)
77 $processingResult = $this->patientTransactionService->getAll($pid);
79 if (!$processingResult->hasErrors() && count($processingResult->getData()) == 0) {
80 return RestControllerHelper::handleProcessingResult($processingResult, 404);
83 return RestControllerHelper::handleProcessingResult($processingResult, 200, true);