@@ -33,26 +33,47 @@ export const preprocessStudyRegistrationMetadata = async (username, metadataID,
33
33
}
34
34
metadataToUpdate [ STUDY_DATA_FIELD ] [ studyRegistrationValidationField ] = true ;
35
35
metadataToUpdate [ STUDY_DATA_FIELD ] [ studyRegistrationTrackingField ] = username ;
36
- metadataToUpdate [ STUDY_DATA_FIELD ] = { ...metadataToUpdate [ STUDY_DATA_FIELD ] , ...updatedValues } ;
36
+
37
+ // add all repository_study_ids as separate objects
38
+ if ( updatedValues . repository_study_ids ?. length > 0 ) {
39
+ const tempStudyIDObj = updatedValues . repository_study_ids . map ( ( studyId ) => ( {
40
+ repository_name : updatedValues . repository ,
41
+ repository_study_ID : studyId ,
42
+ } ) ) ;
43
+ metadataToUpdate [ STUDY_DATA_FIELD ] . study_metadata . metadata_location . data_repositories = tempStudyIDObj ;
44
+ }
45
+ metadataToUpdate [ STUDY_DATA_FIELD ] . study_metadata . metadata_location . clinical_trials_study_ID = updatedValues . clinical_trials_id ;
46
+ if ( updatedValues . clinical_trials_id ) {
47
+ metadataToUpdate . clinicaltrials_gov = updatedValues . clinicaltrials_gov ;
48
+ }
49
+
37
50
return metadataToUpdate ;
38
51
} catch ( err ) {
39
52
throw new Error ( `Request for query MDS failed: ${ err } ` ) ;
40
53
}
41
54
} ;
42
55
43
- export const createCEDARInstance = async ( cedarUserUUID , metadataToRegister = { } ) :Promise < any > => {
56
+ export const createCEDARInstance = async ( cedarUserUUID , metadataToRegister = { clinicaltrials_gov : { } } ) :Promise < any > => {
44
57
const cedarCreationURL = `${ cedarWrapperURL } /create` ;
45
58
let updatedMetadataToRegister = { ...metadataToRegister } ;
46
59
updatedMetadataToRegister = await fetchWithCreds ( {
47
60
path : cedarCreationURL ,
48
61
method : 'POST' ,
49
62
customHeaders : { 'Content-Type' : 'application/json' } ,
50
- body : JSON . stringify ( { cedar_user_uuid : cedarUserUUID , metadata : metadataToRegister [ STUDY_DATA_FIELD ] } ) ,
63
+ body : JSON . stringify ( {
64
+ cedar_user_uuid : cedarUserUUID ,
65
+ metadata : {
66
+ appl_id : metadataToRegister [ STUDY_DATA_FIELD ] . study_metadata . metadata_location . nih_application_id ,
67
+ project_title : metadataToRegister [ STUDY_DATA_FIELD ] . study_metadata . minimal_info . study_name ,
68
+ study_description_summary : metadataToRegister [ STUDY_DATA_FIELD ] . study_metadata . minimal_info . study_description ,
69
+ clinicaltrials_gov : metadataToRegister . clinicaltrials_gov ,
70
+ } ,
71
+ } ) ,
51
72
} ) . then ( ( { status, data } ) => {
52
73
if ( status !== 201 ) {
53
74
throw new Error ( `Request for create CEDAR instance failed with status ${ status } ` ) ;
54
75
}
55
- updatedMetadataToRegister [ STUDY_DATA_FIELD ] . cedar_instance_id = data ?. cedar_instance_id || '' ;
76
+ updatedMetadataToRegister [ STUDY_DATA_FIELD ] . study_metadata . metadata_location . cedar_study_level_metadata_template_instance_ID = data ?. cedar_instance_id || '' ;
56
77
return Promise . resolve ( updatedMetadataToRegister ) ;
57
78
} )
58
79
. catch ( ( err ) => { throw new Error ( `Request for create CEDAR instance failed: ${ err } ` ) ; } ) ;
0 commit comments