Downloads Documentation Community Contribute Demo






Show Sidebar
Login | Register

root/openmrs-modules/chica/ruleLibrary/bp.java

Revision 5334, 2.8 kB (checked in by tmdugan, 5 months ago)

-- chica

* updated some chica rules

Line 
1 package org.openmrs.module.chica.rule;
2
3 import java.util.Map;
4 import java.util.Set;
5
6 import org.openmrs.Patient;
7 import org.openmrs.api.context.Context;
8 import org.openmrs.logic.LogicContext;
9 import org.openmrs.logic.LogicCriteria;
10 import org.openmrs.logic.LogicException;
11 import org.openmrs.logic.LogicService;
12 import org.openmrs.logic.Rule;
13 import org.openmrs.logic.op.Operator;
14 import org.openmrs.logic.result.Result;
15 import org.openmrs.logic.result.Result.Datatype;
16 import org.openmrs.logic.rule.RuleParameterInfo;
17
18 public class bp implements Rule
19 {
20         private LogicService logicService = Context.getLogicService();
21
22         /**
23          * *
24          *
25          * @see org.openmrs.logic.rule.Rule#getParameterList()
26          */
27         public Set<RuleParameterInfo> getParameterList()
28         {
29                 return null;
30         }
31
32         /**
33          * *
34          *
35          * @see org.openmrs.logic.rule.Rule#getDependencies()
36          */
37         public String[] getDependencies()
38         {
39                 return new String[]
40                 {};
41         }
42
43         /**
44          * *
45          *
46          * @see org.openmrs.logic.rule.Rule#getTTL()
47          */
48         public int getTTL()
49         {
50                 return 0; // 60 * 30; // 30 minutes
51         }
52
53         /**
54          * *
55          *
56          * @see org.openmrs.logic.rule.Rule#getDatatype(String)
57          */
58         public Datatype getDefaultDatatype()
59         {
60                 return Datatype.CODED;
61         }
62         public Result eval(LogicContext context, Patient patient,
63                         Map<String, Object> parameters) throws LogicException
64         {
65                 Result diasResult = null;
66                 Result systResult = null;
67
68                 String conceptName = "SYSTOLIC_BP";
69                 Integer encounterId = (Integer) parameters.get("encounterId");
70
71                 LogicCriteria conceptCriteria = new LogicCriteria(conceptName);
72
73                 LogicCriteria fullCriteria = null;
74                 LogicCriteria encounterCriteria = null;
75
76                 if (encounterId != null)
77                 {
78                         encounterCriteria = new LogicCriteria("encounterId").equalTo(encounterId);
79
80                         fullCriteria = conceptCriteria.and(encounterCriteria);
81                 } else
82                 {
83                         fullCriteria = conceptCriteria;
84                 }
85                 systResult = context.read(patient, context.getLogicDataSource("obs"),
86                                 fullCriteria.last());
87
88                 conceptName = "DIASTOLIC_BP";
89                 encounterId = (Integer) parameters.get("encounterId");
90
91                 conceptCriteria = new LogicCriteria(conceptName);
92
93                 fullCriteria = null;
94                 encounterCriteria = null;
95
96                 if (encounterId != null)
97                 {
98                         encounterCriteria = new LogicCriteria("encounterId").equalTo(encounterId);
99
100                         fullCriteria = conceptCriteria.and(encounterCriteria);
101                 } else
102                 {
103                         fullCriteria = conceptCriteria;
104                 }
105                 diasResult = context.read(patient, context.getLogicDataSource("obs"),
106                                 fullCriteria.last());
107
108                 if(diasResult != null && systResult!= null)
109                 {
110                         Double diasBPNum = diasResult.toNumber();
111                         Double systBPNum = systResult.toNumber();
112                        
113                         if(diasBPNum != null && systBPNum != null)
114                         {
115                                 String diasBloodPressure = String.valueOf(diasBPNum.intValue());
116                                 String systBloodPressure = String.valueOf(systBPNum.intValue());
117
118                                 return new Result(systBloodPressure + "/" + diasBloodPressure);
119                         }
120                 }
121                 return Result.emptyResult();
122         }
123 }
Note: See TracBrowser for help on using the browser.