Presentation is loading. Please wait.

Presentation is loading. Please wait.

RandoNode Frame Work and API OPEN Development Conference September 17-19, 2008 Ravi Rajaram IT Development Manager.

Similar presentations


Presentation on theme: "RandoNode Frame Work and API OPEN Development Conference September 17-19, 2008 Ravi Rajaram IT Development Manager."— Presentation transcript:

1 RandoNode Frame Work and API OPEN Development Conference September 17-19, 2008 Ravi Rajaram IT Development Manager

2 Welcome

3 9/18/08 RandoNode FrameWork 3 Goals for Today Present a comprehensive view of the RandoNode architecture Achieve a more uniform understanding of the system across the CTSU and all of the Groups Specifically, you should leave understanding… –The RandoNode framework classes and the classes where you need to do the work –How to deploy a RandoNode –How to modify one of the RandoNode methods to embed your business logic –How to extract data from the OPEN request objects –How to deal with the form and WSDL changes

4 9/18/08 RandoNode FrameWork 4 Warning ! For some of you, the hands on will be a bit trivial based on the work you have done already… Please bear with us…

5 9/18/08 RandoNode FrameWork 5 What is a RandoNode? A RandoNode is a web service hosted by the Cooperative Group. –Each Cooperative Group Hosts their own RandoNode A RandoNode accepts request objects from the OPEN Portal. After processing requests from the OPEN Portal objects, a RandoNode send the registration results back to OPEN. All of the RandoNode logic and classes are embedded in the RandoNode.jar.

6 9/18/08 RandoNode FrameWork 6 RandoNode.jar Every Group receives this jar Contains all of the CTSU developed APIs Helpful in extracting the data Helpful in persisting data into a predefined schema Helpful for navigating the ODM objects

7 9/18/08 RandoNode FrameWork 7 RandoNode.jar (cont) The jar Contains 5 packages –Node Web interface classes and the utility to convert between object and xml –Framework Provides a clean separation between the web service input and the registration business logic –Odm Contains the classes that represent the ODM object model –Domain Persistent domain objects for working with hibernate –Persist Hibernate persistent layer

8 9/18/08 RandoNode FrameWork 8 Node API – Web Interface At this time the web interface implements five methods –isAvailable() –doCredential –doValidate –doRegister –doRegisterTest Every RandoNode created from the starter kit or created from the scratch, should implement these methods The input and output parameters (Interface objects) for these methods are strongly typed objects –Exception: clinicaldata in ODM format is a string

9 9/18/08 RandoNode FrameWork 9 Node API – Interface Classes

10 9/18/08 RandoNode FrameWork 10 Node API – Interface Classes (cont) Domain classes –OpenRegistration –OdmData Transaction Overhead Classes –OpenTxheader –OpenRequest –OpenResponse Specific response Classes –Wrappers to multiple objects –Includes references to the Domain and Tx Overhead objects –Ex. RegistrationResponse

11 9/18/08 RandoNode FrameWork 11 Node API – OpenRegistration Class

12 9/18/08 RandoNode FrameWork 12 Node API – OdmData class

13 9/18/08 RandoNode FrameWork 13 Node API – isAvailable() Method Purpose: Intended to find out if the Group RandoNode services are available for accepting requests Input: OpenRequest Output: OpenResponse Return READY if service is available,NOT-READY, if not

14 9/18/08 RandoNode FrameWork 14 Node API – doCredential() Method Purpose: To perform any special site, investigator and CRA credentialing check at the Group Input: OpenRequest, OpenRegistration Output: RegistrationResponse Return SUCCESS if the credentialing is OK, FAILURE otherwise

15 9/18/08 RandoNode FrameWork 15 Node API – doValidate() Method Purpose: to validate the registration and clinical data before invoking the doRegister method. –Only validate the data and do not perform any registration Input: OpenRequest, OpenRegistration,OdmData Output: RegistrationResponse Return SUCCESS if the validation is OK, FAILURE otherwise. –OpenRegistration.statusDetailText should contain the validation failure details

16 9/18/08 RandoNode FrameWork 16 Node API – doRegister() Method Purpose: To register the patient in the study –Check isTest is false for production requests Input: OpenRequest, OpenRegistration,OdmData Output: RegistrationResponse Return SUCCESS if the registration is OK, FAILURE otherwise. –The patientId, and treatmentAssignment should be filled in, if the patient is eligible. –The eligibility should be set whether the patient is eligible or not. –The ineligibilityReason should contain the reason –siteInstructions is set with any additional information for the registering site

17 9/18/08 RandoNode FrameWork 17 Node API – doRegisterTest() Method Purpose: To test register the patient in the study –redundant with isTest attribute of OpenTxHeader Input: OpenRequest, OpenRegistration,OdmData Output: RegistrationResponse Return SUCCESS if the registration is OK, FAILURE otherwise –The patientId, and treatmentAssignment should be filled in, if the patient is eligible –The eligibility should be set whether the patient is eligible or not –The ineligibilityReason should contain the reason –siteInstructions is set with any additional information for the registering site

18 9/18/08 RandoNode FrameWork 18 Treatment of Nulls and Other values Within OPEN objects, any attribute value which is null will contain: –‘NULL’ for the string data type –-99 for Number data type (soon will be changed to -9999.99) –Wrapper functions will be implemented to provide method to test for NULL values OtherValues attribute –Handles special data request from groups without changing the API signature –Will contain name-value pairs –Over time, the class definitions will be changed to accommodate the attributes explicitly

19 9/18/08 RandoNode FrameWork 19 RandoNode Object Flow for doRegister

20 9/18/08 RandoNode FrameWork 20 RandoNode FrameWork The RandoNode has a framework (Jerry’s Framework) that separates the classes based on responsibility: –Classes that the CTSU is responsible for maintaining –Classes that a Group is responsible for implementing to capture their specific business logic CTSU provides a jar/dll that contains this framework classes The jar/dll also contains utilities that will help in extracting the data from the OPEN request objects

21 9/18/08 RandoNode FrameWork 21 Frame Work Classes

22 9/18/08 RandoNode FrameWork 22 Group Implementation Classes A main class that inherits from RanodeNodeApp. This class is called from the CTSU provided web service class to obtain a object to handle the OPEN requests. Class(es) that inherit(s) from RegistrationCore which contains the business logic for the web services provided by the groups’ RandoNode.

23 9/18/08 RandoNode FrameWork 23 Frame Work logic Create application object RandoNodeNSABP Create an application block (transaction) Ask the application object to create an empty Registration object RegistrationNSABP. This can be protocol specific registration object such as RegistrationNSABPB42, RegistrationNSABPB45 etc.. –Protocol specific registration objects will implement special rules for that protocol for credentialing, validation, registration etc.. Load the metadata and clinical data objects from the OdmData data. Set the incoming registration data Initialize the registration Response, including openRegistration Invoke the appropriate method in the Registration object RegistrationNSABP or protocol specific one. close the transaction

24 9/18/08 RandoNode FrameWork 24 ODM API Contains classes that represent the ODM object model –Meta data classes and clinical data classes Contains two util classes that facilitate data extraction –MetaDataUtil –ClinicalDataUtil –Classes load the data from the openClinicalData and openMetadata strings (within OdmData) into ODM objects –The util classes will be enhanced with more methods as we get request for extraction of data on predefined fields

25 9/18/08 RandoNode FrameWork 25 ODM API - Metadata Classes

26 9/18/08 RandoNode FrameWork 26 ODM API - ClinicalData Classes

27 9/18/08 RandoNode FrameWork 27 Domain and Persist API Contains classes that are required for persisting the data in the RandoNode schema Domain API contains the hibernate mapping files whereas the persist contains the java code for persistence A configuration parameter controls whether to persist the data in to the randonode Schema –More details about parameter later

28 9/18/08 RandoNode FrameWork 28 Domain and Persist API – RandoNode Schema

29 9/18/08 RandoNode FrameWork 29 Hands on Tasks Organization Task 1 – Randonode Installation Task 2a - How to use OPENPortalProxy Task 2b – Extract data from simple questions Task 2c – Extract data from repeating Module Task 3 – Read meta data files using the OPENDataService. Task 4a - Metadata change. –How to deal with Meta data changes Task 4b - WSDL change


Download ppt "RandoNode Frame Work and API OPEN Development Conference September 17-19, 2008 Ravi Rajaram IT Development Manager."

Similar presentations


Ads by Google