Hi SAS Community,
I am new to Medidata Rave and SAS integration to download data and need some assistance. I am currently using the SAS on Demand to initiate a request and and connecting to ftp server using the filename ftp to download the extract the data. I was trying to use the Biostat/ODM adapter to find a way to connect to the Rave table for smaller requests and have them run directly instead of having a SAS on demand request.
I have researched and was unable to find a way to implement the "Get" functions to get the data. I am currently using SAS 9.4 and the data is stored on an instance. I understand that I can use proc http to connect to the data server and so far I am unable to find a documentation/code that can guide me through the steps and factors to consider.
Can anyone familiar with the problem help out ?? Below is an example of code I am using below with "my-organization" replaced with working name.
filename resp 'O:\test.csv';
proc http
method="GET"
url="GET https://my-organisation.mdsol.com/RaveWebServices/studies/Mediflex(Prod)/datasets/raw/DEMOG.csv"
out=resp;
run;
What does the log show when you run your code attempts?
Copy the text from the log with the code and any messages, notes, warnings or errors. On the forum, open a text box using the </> icon that appears above the main message window and paste the text.
The text box helps maintain formatting of some of the diagnostics that SAS provides. The main message windows will reformat text, sometimes making it very hard to decipher such diagnostics.
Just a thought.... did you ask Medidata about this?
I haven't used it, but in a prior clinical trial job when I was leaving they were just starting a move to Medidata. And it seemed like Medidata was the '1000 pound gorilla' in electronic data capture for clinical trials. Since SAS is still (I think) the '1000 pound gorilla' for analyzing clinical trial data, I would think Medidata would have a vested interest in making it easy for data managers / biostatisticians to pull data into SAS.
In this fact sheet, they talk about an "ODM adapter" for accessing data. https://www.medidata.com/wp-content/uploads/2019/05/Customer-Facing-Fact-Sheet-Rave-EDC-May-19-1.pdf
But again, I have no direct experience, other than having seen a few demos.
ERROR: The URI is missing the port value after the ':' port separator. ERROR: URL is malformed. NOTE: PROCEDURE HTTP used (Total process time): real time 0.01 seconds cpu time 0.00 seconds NOTE: The SAS System stopped processing this step because of errors.
Here is the log after this code is run.
'GET https...' does not look like the beginning of a valid URL. Remove the 'GET ' from the url value.
ERROR: Host name resolution failed NOTE: PROCEDURE HTTP used (Total process time): real time 1.26 seconds cpu time 0.04 seconds NOTE: The SAS System stopped processing this step because of errors.
Thank you for your feedback. I have this log error after removing the GET.
Does that URL work from your PC?
Does it work from the machine where SAS is running? Is that machine even connected to the outside world?
Hi,
I use a 2 step approach:
first read your study metadata where you can find all the forms that are defined in your study build
based on above list you can download each form data no matter what exact study you are using (it is metadata driven, so with a few parameters you can use this for multiple studies)
if you are using this in LSAF you most likely need to add a proxy and request to SAS professional services (jira ticket) to open that specific port in their network so that LSAF can connect to Medidata RWS (webservices)
example for metadata::
https://url.mdsol.com/RaveWebServices/datasets/Clinicalviewmetadata.csv?projectname=studyID
replace URL with your medidata URL and studyID with the study you need
form data extraction=
proc http proxyhost="webproxy.vsp.sas.com" proxyport=3128
out=clindata
url="https://URL.mdsol.com/RaveWebServices/datasets/V_studyID_FormID.csv?environmentName=prod"
headerin=httphead
headerout=httpret
method="get"
ct="text/plain;charset=UTF-8";
run;
I use Medidata mAuth for authentication, so that's the reason I need the http input header
output header I use to scan for return message (OK, nok,...)
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.