- Timestamp:
- 05/06/08 00:36:37 (8 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
openmrs/trunk/src/api/org/openmrs/order/DrugOrderSupport.java
r4095 r4113 15 15 16 16 import java.util.List; 17 import java.util.Vector; 17 18 18 19 import org.apache.commons.logging.Log; 19 20 import org.apache.commons.logging.LogFactory; 21 import org.openmrs.GlobalProperty; 22 import org.openmrs.api.GlobalPropertyListener; 23 import org.openmrs.api.context.Context; 24 import org.openmrs.util.OpenmrsConstants; 20 25 21 public class DrugOrderSupport { 26 import com.thoughtworks.xstream.XStream; 27 import com.thoughtworks.xstream.io.xml.DomDriver; 28 29 public class DrugOrderSupport implements GlobalPropertyListener { 22 30 23 31 private static DrugOrderSupport singleton; … … 27 35 List<RegimenSuggestion> standardRegimens; 28 36 List<RegimenSuggestion> suggestedRegimens; 37 private XStream xstream; 29 38 30 39 public DrugOrderSupport() { 31 if (singleton == null) 40 if (singleton == null) { 32 41 singleton = this; 42 xstream = new XStream(new DomDriver()); 43 xstream.alias("regimenSuggestion", RegimenSuggestion.class); 44 xstream.alias("drugSuggestion", DrugSuggestion.class); 45 } 33 46 } 34 47 … … 44 57 */ 45 58 public List<RegimenSuggestion> getStandardRegimens() { 59 if (standardRegimens == null) { 60 try { 61 String xml = Context.getAdministrationService().getGlobalProperty(OpenmrsConstants.GLOBAL_PROPERTY_STANDARD_DRUG_REGIMENS); 62 setStandardRegimens(xml); 63 } catch (Exception ex) { 64 setStandardRegimens(new Vector<RegimenSuggestion>()); 65 } 66 } 46 67 return standardRegimens; 47 68 } … … 64 85 this.suggestedRegimens = suggestedRegimens; 65 86 } 87 88 /** 89 * @see org.openmrs.api.GlobalPropertyListener#supportsPropertyName(java.lang.String) 90 */ 91 public boolean supportsPropertyName(String propertyName) { 92 return OpenmrsConstants.GLOBAL_PROPERTY_STANDARD_DRUG_REGIMENS.equals(propertyName); 93 } 94 95 /** 96 * @see org.openmrs.api.GlobalPropertyListener#globalPropertyChanged(org.openmrs.GlobalProperty) 97 */ 98 public void globalPropertyChanged(GlobalProperty newValue) { 99 try { 100 setStandardRegimens(newValue.getPropertyValue()); 101 } catch (Exception ex) { 102 log.error("Error in new xml global property value", ex); 103 setStandardRegimens(new Vector<RegimenSuggestion>()); 104 } 105 } 106 107 private void setStandardRegimens(String xml) { 108 List<RegimenSuggestion> list = (List<RegimenSuggestion>) xstream.fromXML(xml); 109 setStandardRegimens(list); 110 } 111 112 /** 113 * @see org.openmrs.api.GlobalPropertyListener#globalPropertyDeleted(java.lang.String) 114 */ 115 public void globalPropertyDeleted(String propertyName) { 116 if (!OpenmrsConstants.GLOBAL_PROPERTY_STANDARD_DRUG_REGIMENS.equals(propertyName)) 117 return; 118 setStandardRegimens(new Vector<RegimenSuggestion>()); 119 } 66 120 }