Ignore:
Timestamp:
Jun 3, 2010, 9:48:33 AM (7 years ago)
Author:
jahn
Message:

REST resources for communicating with the Simple Assay Module.

File:
1 edited

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}
Note: See TracChangeset for help on using the changeset viewer.