Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
"dataSubmitterUserId",
"dataCustodianEmail",
"publicVisibility",
"throughBioId",
"nihAnvilUse",
"submittingToAnvil",
"dbGaPPhsID",
Expand Down Expand Up @@ -121,6 +122,11 @@ public class DatasetRegistrationSchemaV1 {
@JsonPropertyDescription("Public Visibility of this study")
private Boolean publicVisibility;

/** Through.bio Identifier */
@JsonProperty("throughBioId")
@JsonPropertyDescription("Through.bio Identifier")
private String throughBioId;

/** NIH Anvil Use (Required) */
@JsonProperty("nihAnvilUse")
@JsonPropertyDescription("NIH Anvil Use")
Expand Down Expand Up @@ -409,6 +415,18 @@ public void setPublicVisibility(Boolean publicVisibility) {
this.publicVisibility = publicVisibility;
}

/** Through.bio Identifier */
@JsonProperty("throughBioId")
public String getThroughBioId() {
return throughBioId;
}

/** Through.bio Identifier */
@JsonProperty("throughBioId")
public void setThroughBioId(String throughBioId) {
this.throughBioId = throughBioId;
}

/** NIH Anvil Use (Required) */
@JsonProperty("nihAnvilUse")
public DatasetRegistrationSchemaV1.NihAnvilUse getNihAnvilUse() {
Expand Down Expand Up @@ -833,6 +851,10 @@ public String toString() {
sb.append('=');
sb.append(((this.publicVisibility == null) ? "<null>" : this.publicVisibility));
sb.append(',');
sb.append("throughBioId");
sb.append('=');
sb.append(((this.throughBioId == null) ? "<null>" : this.throughBioId));
sb.append(',');
sb.append("nihAnvilUse");
sb.append('=');
sb.append(((this.nihAnvilUse == null) ? "<null>" : this.nihAnvilUse));
Expand Down Expand Up @@ -1011,6 +1033,7 @@ public int hashCode() {
+ ((this.dataSubmitterUserId == null) ? 0 : this.dataSubmitterUserId.hashCode()));
result =
((result * 31) + ((this.publicVisibility == null) ? 0 : this.publicVisibility.hashCode()));
result = ((result * 31) + ((this.throughBioId == null) ? 0 : this.throughBioId.hashCode()));
result =
((result * 31)
+ ((this.dataCustodianEmail == null) ? 0 : this.dataCustodianEmail.hashCode()));
Expand Down Expand Up @@ -1184,6 +1207,16 @@ public boolean equals(Object other) {
.publicVisibility
.equals(
rhs.publicVisibility))))
&& ((this
.throughBioId
== rhs.throughBioId)
|| ((this
.throughBioId
!= null)
&& this
.throughBioId
.equals(
rhs.throughBioId)))
&& ((this
.dataCustodianEmail
== rhs.dataCustodianEmail)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ public class DatasetRegistrationSchemaV1Builder {
public static final String url = "url";
public static final String numberOfParticipants = "numberOfParticipants";
public static final String fileTypes = "fileTypes";
public static final String throughBioId = "throughBioId";

public DatasetRegistrationSchemaV1 build(Study study, List<Dataset> datasets) {
DatasetRegistrationSchemaV1 schema = new SchemaFromStudy().build(study);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import static org.broadinstitute.consent.http.models.dataset_registration_v1.builder.DatasetRegistrationSchemaV1Builder.species;
import static org.broadinstitute.consent.http.models.dataset_registration_v1.builder.DatasetRegistrationSchemaV1Builder.studyType;
import static org.broadinstitute.consent.http.models.dataset_registration_v1.builder.DatasetRegistrationSchemaV1Builder.submittingToAnvil;
import static org.broadinstitute.consent.http.models.dataset_registration_v1.builder.DatasetRegistrationSchemaV1Builder.throughBioId;

import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
Expand Down Expand Up @@ -70,6 +71,7 @@ public DatasetRegistrationSchemaV1 build(Study study) {
schemaV1.setDataCustodianEmail(
findListStringPropValue(study.getProperties(), dataCustodianEmail));
schemaV1.setPublicVisibility(study.getPublicVisibility());
schemaV1.setThroughBioId(findStringPropValue(study.getProperties(), throughBioId));
String nihAnvilUseVal = findStringPropValue(study.getProperties(), nihAnvilUse);
if (Objects.nonNull(nihAnvilUseVal)) {
schemaV1.setNihAnvilUse(NihAnvilUse.fromValue(nihAnvilUseVal));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public class StudyTerm {
private Integer dataSubmitterId;
private List<String> dataCustodianEmail;
private Boolean publicVisibility;
private String throughBioId;
private List<String> dataTypes;
private Map<String, Object> assets;
private Map<String, Object> data;
Expand Down Expand Up @@ -108,6 +109,14 @@ public void setPublicVisibility(Boolean publicVisibility) {
this.publicVisibility = publicVisibility;
}

public String getThroughBioId() {
return throughBioId;
}

public void setThroughBioId(String throughBioId) {
this.throughBioId = throughBioId;
}

public List<String> getDataTypes() {
return dataTypes;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -611,6 +611,10 @@ Optional<StudyProperty> extract(DatasetRegistrationSchemaV1 registration) {
}
return null;
}),
new StudyPropertyExtractor(
"throughBioId",
PropertyType.String,
DatasetRegistrationSchemaV1::getThroughBioId),
new StudyPropertyExtractor(
"nihAnvilUse", PropertyType.String, DatasetRegistrationSchemaV1::getNihAnvilUse),
new StudyPropertyExtractor(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,9 @@ public StudyTerm toStudyTerm(Study study) {
term.setPiName(study.getPiName());
term.setPublicVisibility(study.getPublicVisibility());

findStudyProperty(study.getProperties(), "throughBioId")
.ifPresent(prop -> term.setThroughBioId(prop.getValue().toString()));

findStudyProperty(study.getProperties(), "dbGaPPhsID")
.ifPresent(prop -> term.setPhsId(prop.getValue().toString()));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import static org.broadinstitute.consent.http.models.dataset_registration_v1.builder.DatasetRegistrationSchemaV1Builder.species;
import static org.broadinstitute.consent.http.models.dataset_registration_v1.builder.DatasetRegistrationSchemaV1Builder.studyType;
import static org.broadinstitute.consent.http.models.dataset_registration_v1.builder.DatasetRegistrationSchemaV1Builder.submittingToAnvil;
import static org.broadinstitute.consent.http.models.dataset_registration_v1.builder.DatasetRegistrationSchemaV1Builder.throughBioId;
import static org.broadinstitute.consent.http.models.dataset_registration_v1.builder.DatasetRegistrationSchemaV1Builder.url;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
Expand Down Expand Up @@ -99,6 +100,7 @@ void testBuildSchemaWithStudyProps() {
assertNotNull(schemaV1.getDataSubmitterUserId());
assertNotNull(schemaV1.getDataCustodianEmail());
assertNotNull(schemaV1.getPublicVisibility());
assertNotNull(schemaV1.getThroughBioId());
assertNotNull(schemaV1.getNihAnvilUse());
assertNotNull(schemaV1.getSubmittingToAnvil());
assertNotNull(schemaV1.getDbGaPPhsID());
Expand Down Expand Up @@ -360,6 +362,8 @@ private void addAllStudyProperties(Study study) {
study.getStudyId(),
AlternativeDataSharingPlanAccessManagement.OPEN_ACCESS.value(),
PropertyType.String));
study.addProperty(
createStudyProperty(throughBioId, study.getStudyId(), randomString(), PropertyType.String));
}

private String randomString() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,8 @@ private DatasetRecord createDatasetRecord() {
createStudyProperty("dbGaPPhsID", PropertyType.String),
createStudyProperty("phenotypeIndication", PropertyType.String),
createStudyProperty("species", PropertyType.String),
createStudyProperty("dataCustodianEmail", PropertyType.Json));
createStudyProperty("dataCustodianEmail", PropertyType.Json),
createStudyProperty("throughBioId", PropertyType.String));
Dataset dataset = createDataset(user, updateUser, new DataUse(), dac);
dataset.setProperties(
Set.of(
Expand Down Expand Up @@ -347,6 +348,11 @@ void testToDatasetTerm_StudyInfo() {
assertEquals(custodianProp.get().getValue().toString(), termCustodians);
assertEquals(datasetRecord.study.getPublicVisibility(), term.getStudy().getPublicVisibility());
assertEquals(datasetRecord.study.getDataTypes(), term.getStudy().getDataTypes());
Optional<StudyProperty> throughBioIdProp =
datasetRecord.study.getProperties().stream()
.filter(p -> p.getKey().equals("throughBioId"))
.findFirst();
assertTrue(throughBioIdProp.isPresent());
}

@ParameterizedTest
Expand Down
Loading