Show
Ignore:
Timestamp:
03-06-10 09:48:33 (4 years ago)
Author:
jahn
Message:

REST resources for communicating with the Simple Assay Module.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/groovy/dbnp/rest/CCMCommunicationManager.groovy

    r491 r515  
    1111 
    1212 
     13 
     14/**  CCMCommunicationManager  
     15 * 
     16 *   This class implements a REST client to fetch data from the Clinical Chemistry Module (CCM). 
     17 *   The communicatino manager provides methods for accessing each resources. 
     18 *   Every REST resource corresponds to exactly one method in this class that makes 
     19 *   the communication with the resource available.  
     20 * 
     21 *   For instance, the getSearchable() method calls the getMeasurements resource of the CCM 
     22 *   by passing arguments to it and returning the result of the calling that resource.  
     23 */ 
     24 
     25 
    1326class CCMCommunicationManager implements CleanDataLayer { 
    1427 
     28     
     29    /** ServerULR contains a string that represents the URL of the  
     30     *  rest resources that this communication manager connects to. 
     31     */  
     32    def static ServerURL = "http://nbx5.nugo.org:8182/ClinicalChemistry/rest"; 
    1533    //def static ServerURL = "http://localhost:8080/gscf/rest"; 
    16     def static ServerURL = "http://nbx5.nugo.org:8182/ClinicalChemistry/rest"; 
    1734 
    1835 
     
    4360 
    4461 
    45  
    46  
    47  
    4862    /** 
    4963     * Testing REST. Remove when connection to nbx5 is established. 
     
    5266     */ 
    5367    public Object getFeatures() { 
    54         def url = new URL( ServerURL + "/features" ) 
    55         return  JSON.parse(url.newReader()) 
     68    //    return  request( "features" )  
     69        return  getStudiesForKeyword("ldl") 
    5670    } 
    5771 
    5872 
    5973    /** 
    60      * Testing REST. Remove when connection to nbx5 is established. 
     74     * For a string for the searchable plugin. 
     75     * This works for one keyeword, but protection should be built in using  
     76     * the methods that searchable uses for building query strings.  
    6177     * 
    6278     * @return list of ClinicalFloatData 
    6379     */ 
    6480    private String getSearchable( keyword ) { 
    65         return "submit=Query&q=" + keyword  
     81        return  "?submit=Query&q=" + keyword  
    6682    } 
    6783 
    6884 
    6985    /** 
    70      * Testing REST. Remove when connection to nbx5 is established. 
     86     * Get all meassurements that contain a given keyword as feature. 
    7187     * 
     88     * @param  keyword, the keyword used 
    7289     * @return list of ClinicalFloatData 
    7390     */ 
    7491    public String getStudiesForKeyword( String keyword ) { 
     92        def resource = "getMeasurementsForValue" 
     93        request( resource + getSearchable(keyword) ) 
    7594    } 
    7695 
    7796 
     97    /** 
     98     * Get all meassurements that contain a given keyword as feature. 
     99     * 
     100     * @param  keyword, the keyword used 
     101     * @return list of ClinicalFloatData 
     102     */ 
    78103    public Object getMeasurementsResource( String keyword ) { 
    79104        def url = new URL( ServerURL + "/" + getSearchable(keyword) ) 
     
    94119 
    95120 
     121 
     122 
     123 
     124 
    96125    /** Send a request for the REST resource to the server and deliver the  
    97      *  resulting JSON object. 
     126     *  resulting JSON object. (This is just a convenience method.) 
    98127     * 
    99128     *  @param resource: the name of the resource including parameters 
    100129     *  @return JSON object 
    101130     */ 
    102     private Object requesService( String resource ) {  
     131    private Object request( String resource ) {  
    103132        def url = new URL( ServerURL + "/" + resource ); 
    104133        return  JSON.parse( url.newReader() ); 
    105134    } 
    106135 
     136 
     137 
     138 
     139 
    107140}