Downloads Documentation Community Contribute Demo






Show Sidebar
Login | Register

Changeset 6152

Show
Ignore:
Timestamp:
12/01/08 19:47:23 (less than one hour ago)
Author:
catullus
Message:

thousandpatientdata: fixed a few more bugs (mostly NPEs) and wrote out rules for death, starting regimen, and final regimen. fixed "lart" typo.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • openmrs-modules/piht1000patientdataexport/src/org/openmrs/module/thousandpatientdata/calculators/LastARVRegimenCalculator.java

    r6144 r6152  
    33import java.util.ArrayList; 
    44import java.util.Collection; 
     5import java.util.Date; 
    56import java.util.HashSet; 
    67import java.util.List; 
     
    9495                for(DrugOrder order : drugOrders){ 
    9596                        if(arvDrugs.contains(order.getDrug().getConcept())){ 
    96                                 long timeAfterARVStart = order.getStartDate().getTime() - arvStartDate.getTime(); 
     97                                Date orderStartDate = order.getStartDate(); 
     98                                if(orderStartDate == null){ 
     99                                        warnings.add("One of the orders for this patient has a null start date."); 
     100                                        continue; 
     101                                } 
     102                                long timeAfterARVStart = orderStartDate.getTime() - arvStartDate.getTime(); 
    97103                                if(timeAfterARVStart > longestTimeAfterARVStart){ 
    98104                                        longestTimeAfterARVStart = timeAfterARVStart; 
     
    114120                        emrRegimenAsString += regimenItem.getName().getName() + " "; 
    115121                } 
    116                 if(!emrRegimenAsString.isEmpty()
     122                if(emrRegimenAsString.length()!=0
    117123                        emrRegimenAsString = emrRegimenAsString.substring(0,emrRegimenAsString.length()-2); 
    118124                         
     
    123129                        } 
    124130                } 
    125                 if(!abstractionRegimenAsString.isEmpty()
     131                if(abstractionRegimenAsString.length()!=0
    126132                        abstractionRegimenAsString = abstractionRegimenAsString.substring(0,abstractionRegimenAsString.length()-2); 
    127133                 
    128134                if(!abstractionRegimenAsString.equals(emrRegimenAsString)){ 
    129                         warnings.add("Starting EMR regimen (" + emrRegimenAsString + ") does not match starting abstraction regimen (" + abstractionRegimenAsString + ")."); 
     135                        warnings.add("Final EMR regimen (" + emrRegimenAsString + ") does not match final abstraction regimen (" + abstractionRegimenAsString + ")."); 
    130136                } 
    131137                 
    132                 if(abstractionRegimen!=null && !abstractionRegimen.isEmpty()
    133                         value = abstractionRegimenAsString; 
     138                if(abstractionRegimen==null || abstractionRegimen.isEmpty() || emrRegimenAsString.length()!=0
     139                        value = emrRegimenAsString; 
    134140                else 
    135                         value = emrRegimenAsString;    
     141                        value = abstractionRegimenAsString;    
    136142                 
    137143                value = value.replaceFirst(" AND ", " "); 
  • openmrs-modules/piht1000patientdataexport/src/org/openmrs/module/thousandpatientdata/calculators/StartingARVRegimenCalculator.java

    r6144 r6152  
    99 
    1010import org.openmrs.Concept; 
     11import org.openmrs.Drug; 
    1112import org.openmrs.DrugOrder; 
    1213import org.openmrs.Encounter; 
     
    9495                Set<Concept> earliestRegimen = new HashSet<Concept>(); 
    9596                for(DrugOrder order : drugOrders){ 
    96                         if(arvDrugs.contains(order.getDrug().getConcept())){ 
     97                        Drug orderedDrug = order.getDrug(); 
     98                        Concept drugConcept = orderedDrug.getConcept(); 
     99                        if(arvDrugs.contains(drugConcept)){ 
    97100                                Date orderStartDate = order.getStartDate(); 
     101                                if(orderStartDate == null){ 
     102                                        warnings.add("One of the orders for this patient has a null start date."); 
     103                                        continue; 
     104                                } 
    98105                                long orderTime = orderStartDate.getTime(); 
    99106                                long arvStartDateTime = arvStartDate.getTime(); 
     
    118125                        emrRegimenAsString += regimenItem.getName().getName() + " "; 
    119126                } 
    120                 if(!emrRegimenAsString.isEmpty()
     127                if(emrRegimenAsString.length() != 0
    121128                        emrRegimenAsString = emrRegimenAsString.substring(0,emrRegimenAsString.length()-2); 
    122129                         
     
    128135                } 
    129136                 
    130                 if(!abstractionRegimenAsString.isEmpty()
     137                if(abstractionRegimenAsString.length()!=0
    131138                        abstractionRegimenAsString = abstractionRegimenAsString.substring(0,abstractionRegimenAsString.length()-2); 
    132139                 
  • openmrs-modules/piht1000patientdataexport/src/org/openmrs/module/thousandpatientdata/impl/ThousandPatientDataExport.java

    r5579 r6152  
    3131                for(VariableToOutput variable : variables){ 
    3232                        if(variable.getShouldOutput()){ 
     33                                System.out.println(variable.getName()); 
    3334                                VariableView variableView = patient.getVariable(variable.getName()); 
    3435                                String date = variableView.getDate(); 
  • openmrs-modules/piht1000patientdataexport/web/module/thousandPatientDataExportForm.jsp

    r5601 r6152  
    5858</ul> 
    5959 
     60<h4>Death</h4> 
     61<ul> 
     62<li> If the patient is marked as deceased, either in the EMR or a chart abstraction form, then the patient is considered deceased. 
     63<li> If the death date in the EMR and abstraction forms are different, the date from the abstraction forms is taken. 
     64</ul> 
     65 
     66<h4>Starting Regimen</h4> 
     67<ul> 
     68<li> The regimen closest to the ARV start date is taken. 
     69<li> If multiple drugs have the same start date, they are all outputted. 
     70<li> If the EMR and abstraction are discrepent, the abstraction regimen is used. 
     71</ul> 
     72 
     73<h4>Last Regimen</h4> 
     74<ul> 
     75<li> The regimen furthest from the ARV start date is taken. 
     76<li> If multiple drugs ahve the same start date, they are all outputted. 
     77<li> If the EMR and abstraction are discrepent, the EMR regimen is used. 
     78</ul> 
     79 
    6080<h4>Number of Visits Around an Anniversary</h4> 
    6181<ul>