Feat openemr fix 7480 7494 email prescription (#7495)
[openemr.git] / interface / super / rules / library / RuleCriteriaListsBuilder.php
blobd639c03f26da89c9300e7fac4d5c08a883ff1bb5
1 <?php
3 // Copyright (C) 2010-2011 Aron Racho <aron@mi-squred.com>
4 //
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
10 /**
11 * Description of RuleCriteriaListsBuilder
13 * @author aron
15 class RuleCriteriaListsBuilder extends RuleCriteriaBuilder
17 /**
18 * @return RuleCriteriaType
20 function resolveRuleCriteriaType($method, $methodDetail, $value)
22 if (strpos($method, "lists")) {
23 if ($methodDetail == 'medical_problem') {
24 $exploded = explode("::", $value);
25 if ($exploded[0] == "CUSTOM") {
26 // its a medical issue
27 return RuleCriteriaType::from(RuleCriteriaType::issue);
28 } else {
29 // assume its a diagnosis
30 return RuleCriteriaType::from(RuleCriteriaType::diagnosis);
32 } elseif ($methodDetail == 'medication') {
33 // its a medication
34 return RuleCriteriaType::from(RuleCriteriaType::medication);
35 } elseif ($methodDetail == 'allergy') {
36 // its a medication
37 return RuleCriteriaType::from(RuleCriteriaType::allergy);
38 } elseif ($methodDetail == 'surgery') {
39 // its a medication
40 return RuleCriteriaType::from(RuleCriteriaType::surgery);
44 return null;
48 /**
49 * @param RuleCriteriaType $ruleCriteriaType
50 * @return RuleCriteria
52 function build($ruleCriteriaType, $value, $methodDetail)
54 $exploded = explode("::", $value);
56 if ($ruleCriteriaType->code == 'issue') {
57 return new RuleCriteriaMedicalIssue(xl("Medical Issue"), $exploded[1]);
60 if ($ruleCriteriaType->code == 'diagnosis') {
61 return new RuleCriteriaDiagnosis(xl("Diagnosis"), $exploded[0], $exploded[1]);
64 if ($ruleCriteriaType->code == 'medication') {
65 return new RuleCriteriaMedication(xl("Medication"), $value);
68 if ($ruleCriteriaType->code == 'surgery') {
69 return new RuleCriteriaSurgery(xl("Surgery"), $value);
73 if ($ruleCriteriaType->code == 'allergy') {
74 return new RuleCriteriaAllergy(xl("Allergy"), $value);
77 // its unknown
78 return null;
81 /**
83 * @param RuleCriteriaType $criteriaType
85 function newInstance($ruleCriteriaType)
87 if ($ruleCriteriaType->code == 'issue') {
88 return new RuleCriteriaMedicalIssue(xl("Medical Issue"));
91 if ($ruleCriteriaType->code == 'diagnosis') {
92 return new RuleCriteriaDiagnosis(xl("Diagnosis"));
95 if ($ruleCriteriaType->code == 'medication') {
96 return new RuleCriteriaMedication(xl("Medication"));
99 if ($ruleCriteriaType->code == 'surgery') {
100 return new RuleCriteriaSurgery(xl("Surgery"));
103 if ($ruleCriteriaType->code == 'allergy') {
104 return new RuleCriteriaAllergy(xl("Allergy"));
107 return null;