2 // Copyright (C) 2010-2011 Aron Racho <aron@mi-squred.com>
4 // This program is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU General Public License
6 // as published by the Free Software Foundation; either version 2
7 // of the License, or (at your option) any later version.
10 * Description of RuleCriteriaListsBuilder
14 class RuleCriteriaListsBuilder
extends RuleCriteriaBuilder
{
17 * @return RuleCriteriaType
19 function resolveRuleCriteriaType( $method, $methodDetail, $value ) {
20 if (strpos($method, "lists") ) {
21 if ( $methodDetail == 'medical_problem' ) {
22 $exploded = explode("::", $value);
23 if ( $exploded[0] == "CUSTOM" ) {
24 // its a medical issue
25 return RuleCriteriaType
::from( RuleCriteriaType
::issue
);
27 // assume its a diagnosis
28 return RuleCriteriaType
::from( RuleCriteriaType
::diagnosis
);
30 } else if ( $methodDetail == 'medication' ) {
32 return RuleCriteriaType
::from( RuleCriteriaType
::medication
);
33 } else if ( $methodDetail == 'allergy' ) {
35 return RuleCriteriaType
::from( RuleCriteriaType
::allergy
);
36 } else if ( $methodDetail == 'surgery' ) {
38 return RuleCriteriaType
::from( RuleCriteriaType
::surgery
);
47 * @param RuleCriteriaType $ruleCriteriaType
48 * @return RuleCriteria
50 function build( $ruleCriteriaType, $value, $methodDetail ) {
51 $exploded = explode("::", $value);
53 if ( $ruleCriteriaType->code
== 'issue' ) {
54 return new RuleCriteriaMedicalIssue( xl( "Medical Issue" ), $exploded[1] );
57 if ( $ruleCriteriaType->code
== 'diagnosis' ) {
58 return new RuleCriteriaDiagnosis( xl( "Diagnosis" ), $exploded[0], $exploded[1] );
61 if ( $ruleCriteriaType->code
== 'medication' ) {
62 return new RuleCriteriaMedication( xl( "Medication" ), $value );
65 if ( $ruleCriteriaType->code
== 'surgery' ) {
66 return new RuleCriteriaSurgery( xl( "Surgery" ), $value );
70 if ( $ruleCriteriaType->code
== 'allergy' ) {
71 return new RuleCriteriaAllergy( xl( "Allergy" ), $value );
79 * @param RuleCriteriaType $criteriaType
81 function newInstance( $ruleCriteriaType ) {
82 if ( $ruleCriteriaType->code
== 'issue' ) {
83 return new RuleCriteriaMedicalIssue( xl( "Medical Issue" ) );
86 if ( $ruleCriteriaType->code
== 'diagnosis' ) {
87 return new RuleCriteriaDiagnosis( xl( "Diagnosis" ) );
90 if ( $ruleCriteriaType->code
== 'medication' ) {
91 return new RuleCriteriaMedication( xl( "Medication" ) );
94 if ( $ruleCriteriaType->code
== 'surgery' ) {
95 return new RuleCriteriaSurgery( xl( "Surgery" ) );
98 if ( $ruleCriteriaType->code
== 'allergy' ) {
99 return new RuleCriteriaAllergy( xl( "Allergy" ) );