Downloads Documentation Community Contribute Demo






Show Sidebar
Login | Register
Show
Ignore:
Timestamp:
08/10/08 18:37:29 (5 months ago)
Author:
kevjay
Message:

logicws: Added initial support for logic service queries with aggregates in the request for all three data styles.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • openmrs-modules/logicws/web/src/org/openmrs/module/logicws/web/FlatDataStyle.java

    r5144 r5220  
    4242public class FlatDataStyle { 
    4343 
     44    private static final String END_VALUE_TAG = "</value>"; 
     45 
     46    private static final String START_VALUE_TAG = "<value>"; 
     47 
    4448    private static Log log = LogFactory.getLog(FlatDataStyle.class.getName()); 
    4549 
     
    4852    private static final String ENCOUNTERTYPE = "ENCOUNTERTYPE"; 
    4953 
    50     private static final String OBSERVATIONLOCATION = "OBSERVATIONLOCATION"; 
     54    private static final String OBSERVATIONLOCATION = "OBSERVATIONLOCATION"; 
    5155 
    5256    private static final String OBSERVATIONDATE = "OBSERVATIONDATE"; 
     
    8892            log.info("<column token=\"PATIENTID\" />"); 
    8993 
    90             int max = 5; 
    91  
    92             for (String t : tokenNamesFromQuery) { 
     94             
     95            for (String t : tokenNamesFromQuery)  
     96            { 
     97                int max = Integer.parseInt(dataQuery.getTokenAggregateValue(t)); 
     98                 
    9399                for (int i = 1; i < max + 1; i++) { 
    94100                    out.print("<column token=\"" + t + "_" + i + "\" />"); 
     
    140146 
    141147                    // always print the patient id first 
    142                     out.print("<value>" + patient + "</value>"); 
    143                     log.info("<value>" + patient + "</value>"); 
     148                    out.print(START_VALUE_TAG + patient + END_VALUE_TAG); 
     149                    log.info(START_VALUE_TAG + patient + END_VALUE_TAG); 
    144150 
    145151                    for (LogicCriteria token : tokens) { 
    146152                        Result res = resultsForTokens.get(token).get(patient); 
    147153 
     154 
     155                        int max = Integer.parseInt(dataQuery.getTokenAggregateValue(token 
     156                                .getRootToken())); 
     157                        
     158                         
    148159                        for (int i = 0; i < max; i++) { 
    149                             out.print("<value>" + res.get(i) + "</value>"); 
    150                             log.info("<value>" + res.get(i) + "</value>"); 
     160                            out.print(START_VALUE_TAG + res.get(i) 
     161                                    + END_VALUE_TAG); 
     162                            log.info(START_VALUE_TAG + res.get(i) 
     163                                    + END_VALUE_TAG); 
    151164 
    152165                            // add splitter values 
     
    158171                                    if (split.equals(OBSERVATIONDATE)) { 
    159172                                        if (res.get(i).getResultDate() != null) { 
    160                                             out.print("<value>" 
     173                                            out.print(START_VALUE_TAG 
    161174                                                    + res.get(i) 
    162175                                                            .getResultDate() 
    163176                                                            .getTime() 
    164                                                     + "</value>"); 
    165                                             log.info("<value>" 
     177                                                    + END_VALUE_TAG); 
     178                                            log.info(START_VALUE_TAG 
    166179                                                    + res.get(i) 
    167180                                                            .getResultDate() 
    168181                                                            .getTime() 
    169                                                     + "</value>"); 
    170                                         } else { 
    171                                             out.print("<value></value>"); 
    172                                             log.info("<value></value>"); 
     182                                                    + END_VALUE_TAG); 
     183                                        } else { 
     184                                            out.print(START_VALUE_TAG 
     185                                                    + END_VALUE_TAG); 
     186                                            log.info(START_VALUE_TAG 
     187                                                    + END_VALUE_TAG); 
    173188                                        } 
    174189 
     
    178193                                                .getResultObject(); 
    179194                                        if (obs != null) { 
    180                                             out.print("<value>" 
     195                                            out.print(START_VALUE_TAG 
    181196                                                    + obs.getLocation() 
    182                                                     + "</value>"); 
    183                                             log.info("<value>" 
     197                                                    + END_VALUE_TAG); 
     198                                            log.info(START_VALUE_TAG 
    184199                                                    + obs.getLocation() 
    185                                                     + "</value>"); 
    186                                         } else { 
    187                                             out.print("<value></value>"); 
    188                                             log.info("<value></value>"); 
     200                                                    + END_VALUE_TAG); 
     201                                        } else { 
     202                                            out.print(START_VALUE_TAG 
     203                                                    + END_VALUE_TAG); 
     204                                            log.info(START_VALUE_TAG 
     205                                                    + END_VALUE_TAG); 
    189206                                        } 
    190207                                    } else if (split.equals(ENCOUNTERDATE)) { 
     
    193210                                        if (obs != null) { 
    194211                                            out 
    195                                                     .print("<value>" 
     212                                                    .print(START_VALUE_TAG 
    196213                                                            + obs 
    197214                                                                    .getEncounter() 
    198215                                                                    .getEncounterDatetime() 
    199216                                                                    .getTime() 
    200                                                             + "</value>"); 
     217                                                            + END_VALUE_TAG); 
    201218                                            log 
    202                                                     .info("<value>" 
     219                                                    .info(START_VALUE_TAG 
    203220                                                            + obs 
    204221                                                                    .getEncounter() 
    205222                                                                    .getEncounterDatetime() 
    206223                                                                    .getTime() 
    207                                                             + "</value>"); 
    208                                         } else { 
    209                                             out.print("<value></value>"); 
    210                                             log.info("<value></value>"); 
     224                                                            + END_VALUE_TAG); 
     225                                        } else { 
     226                                            out.print(START_VALUE_TAG 
     227                                                    + END_VALUE_TAG); 
     228                                            log.info(START_VALUE_TAG 
     229                                                    + END_VALUE_TAG); 
    211230                                        } 
    212231                                    } else if (split.equals(ENCOUNTERTYPE)) { 
     
    214233                                                .getResultObject(); 
    215234                                        if (obs != null) { 
    216                                             out.print("<value>" 
     235                                            out.print(START_VALUE_TAG 
    217236                                                    + obs.getEncounter() 
    218237                                                            .getEncounterType() 
    219                                                     + "</value>"); 
    220                                             log.info("<value>" 
     238                                                    + END_VALUE_TAG); 
     239                                            log.info(START_VALUE_TAG 
    221240                                                    + obs.getEncounter() 
    222241                                                            .getEncounterType() 
    223                                                     + "</value>"); 
    224                                         } else { 
    225                                             out.print("<value></value>"); 
    226                                             log.info("<value></value>"); 
     242                                                    + END_VALUE_TAG); 
     243                                        } else { 
     244                                            out.print(START_VALUE_TAG 
     245                                                    + END_VALUE_TAG); 
     246                                            log.info(START_VALUE_TAG 
     247                                                    + END_VALUE_TAG); 
    227248                                        } 
    228249                                    }