fix: quick fix to enforce support of x509 database connection on install (#6157)
[openemr.git] / src / Validators / CoverageValidator.php
bloba5b4004757dc53f000da8cb90261e52cbc23e4ba
1 <?php
3 namespace OpenEMR\Validators;
5 use Particle\Validator\Validator;
7 /**
8 * Supports Insurance Coverage Record Validation.
10 * @package OpenEMR
11 * @link http://www.open-emr.org
12 * @author Vishnu Yarmaneni <vardhanvishnu@gmail.com>
13 * @copyright Copyright (c) 2021 Vishnu Yarmaneni <vardhanvishnu@gmail.com>
14 * @license https://github.com/openemr/openemr/blob/master/LICENSE GNU General Public License 3
16 class CoverageValidator extends BaseValidator
18 /**
19 * Configures validations for the Insurance Coverage DB Insert and Update use-case.
20 * The update use-case is comprised of the same fields as the insert use-case.
21 * The update use-case differs from the insert use-case in that fields other than uuid are not required.
23 protected function configureValidator()
25 parent::configureValidator();
27 // insert validations
28 $this->validator->context(
29 self::DATABASE_INSERT_CONTEXT,
30 function (Validator $context) {
31 $context->required('pid')->numeric();
32 $context->required('type')->inArray(array('primary', 'secondary', 'tertiary'));
33 $context->required('provider')->numeric();
34 $context->required('plan_name')->lengthBetween(2, 255);
35 $context->required('policy_number')->lengthBetween(2, 255);
36 $context->required('group_number')->lengthBetween(2, 255);
37 $context->required('subscriber_lname')->lengthBetween(2, 255);
38 $context->optional('subscriber_mname')->lengthBetween(2, 255);
39 $context->required('subscriber_fname')->lengthBetween(2, 255);
40 $context->required('subscriber_relationship')->lengthBetween(2, 255);
41 $context->required('subscriber_ss')->lengthBetween(2, 255);
42 $context->required('subscriber_DOB')->datetime('Y-m-d');
43 $context->required('subscriber_street')->lengthBetween(2, 255);
44 $context->required('subscriber_postal_code')->lengthBetween(2, 255);
45 $context->required('subscriber_city')->lengthBetween(2, 255);
46 $context->required('subscriber_state')->lengthBetween(2, 255);
47 $context->required('subscriber_country')->lengthBetween(2, 255);
48 $context->required('subscriber_phone')->lengthBetween(2, 255);
49 $context->required('subscriber_sex')->lengthBetween(1, 25);
50 $context->required('accept_assignment')->lengthBetween(1, 5);
51 $context->required('policy_type')->lengthBetween(1, 25);
52 $context->optional('subscriber_employer')->lengthBetween(2, 255);
53 $context->optional('subscriber_employer_street')->lengthBetween(2, 255);
54 $context->optional('subscriber_employer_postal_code')->lengthBetween(2, 255);
55 $context->optional('subscriber_employer_state')->lengthBetween(2, 255);
56 $context->optional('subscriber_employer_country')->lengthBetween(2, 255);
57 $context->optional('subscriber_employer_city')->lengthBetween(2, 255);
58 $context->optional('copay')->lengthBetween(2, 255);
59 $context->optional('date')->datetime('Y-m-d');
63 // update validations copied from insert
64 $this->validator->context(
65 self::DATABASE_UPDATE_CONTEXT,
66 function (Validator $context) {
67 $context->copyContext(
68 self::DATABASE_INSERT_CONTEXT,
69 function ($rules) {
70 foreach ($rules as $key => $chain) {
71 $chain->required(false);
75 // additional uuid validation
76 $context->required("uuid", "Coverage UUID")->callback(function ($value) {
77 return $this->validateId("uuid", "insurance_data", $value, true);
78 })->uuid();