Downloads Documentation Community Contribute Demo






Show Sidebar
Login | Register
Show
Ignore:
Timestamp:
05/06/08 00:36:37 (8 months ago)
Author:
djazayeri
Message:

Allow voiding the obs that exits a patient from care. Added global property listeners and supporting infrastructure. The xml for this needs to be changed slightly, but the method signatures are fine.
Also fixing CR/LF issue in a few files

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • openmrs/trunk/src/api/org/openmrs/order/DrugOrderSupport.java

    r4095 r4113  
    1515 
    1616import java.util.List; 
     17import java.util.Vector; 
    1718 
    1819import org.apache.commons.logging.Log; 
    1920import org.apache.commons.logging.LogFactory; 
     21import org.openmrs.GlobalProperty; 
     22import org.openmrs.api.GlobalPropertyListener; 
     23import org.openmrs.api.context.Context; 
     24import org.openmrs.util.OpenmrsConstants; 
    2025 
    21 public class DrugOrderSupport { 
     26import com.thoughtworks.xstream.XStream; 
     27import com.thoughtworks.xstream.io.xml.DomDriver; 
     28 
     29public class DrugOrderSupport implements GlobalPropertyListener { 
    2230 
    2331        private static DrugOrderSupport singleton; 
     
    2735        List<RegimenSuggestion> standardRegimens; 
    2836        List<RegimenSuggestion> suggestedRegimens; 
     37        private XStream xstream; 
    2938         
    3039        public DrugOrderSupport() { 
    31                 if (singleton == null) 
     40                if (singleton == null) { 
    3241                        singleton = this; 
     42                        xstream = new XStream(new DomDriver()); 
     43                xstream.alias("regimenSuggestion", RegimenSuggestion.class); 
     44                xstream.alias("drugSuggestion", DrugSuggestion.class); 
     45                } 
    3346        } 
    3447         
     
    4457         */ 
    4558        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                } 
    4667                return standardRegimens; 
    4768        } 
     
    6485                this.suggestedRegimens = suggestedRegimens; 
    6586        } 
     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    } 
    66120}