diff --git a/src/app/core/substance-details/substance-cards-filters.constant.ts b/src/app/core/substance-details/substance-cards-filters.constant.ts index fa8b771a3..fb96697b1 100644 --- a/src/app/core/substance-details/substance-cards-filters.constant.ts +++ b/src/app/core/substance-details/substance-cards-filters.constant.ts @@ -42,6 +42,10 @@ export const substanceCardsFilters: Array = [ { name: 'isInGroups', filter: groupFilter + }, + { + name: "showDependenciesFilter", + filter: showDependenciesFilter } ]; @@ -213,6 +217,41 @@ export function substanceRelationshipsFilter( }); } +export function showDependenciesFilter( + substance: SubstanceDetail, + filter: SubstanceCardFilterParameters +): Observable { + const requiredCodeSystem = "POWO"; + const requiredClass = "structurallyDiverse"; + const requiredReferenceType = "IMAGE REFERENCE"; + + return new Observable(observer => { + + let showDependencies = false; + + if (substance.codes && substance.codes.length > 0 && substance.substanceClass === requiredClass) { + + for (let i = 0; i < substance.codes.length; i++) { + if(requiredCodeSystem === substance.codes[i].codeSystem && + substance.codes[i].url && substance.codes[i].url.length > 0) { + showDependencies = true; + } + } + } + if( !showDependencies && substance.references && substance.references.length >0) { + for (let i = 0; i < substance.references.length; i++) { + if( substance.references[i].docType === requiredReferenceType + && substance.references[i].uploadedFile + && substance.references[i].uploadedFile.length > 0 ) { + showDependencies = true; + } + } + } + observer.next(showDependencies); + observer.complete(); + }); +} + export function credentialsFilter( substance: SubstanceDetail, filter: SubstanceCardFilterParameters, diff --git a/src/app/fda/config/config.json b/src/app/fda/config/config.json index 28c36488a..a1c897428 100644 --- a/src/app/fda/config/config.json +++ b/src/app/fda/config/config.json @@ -134,14 +134,7 @@ "title": "Substance Dependencies", "filters": [ { - "filterName": "exists", - "propertyToCheck": "references" - }, - { - "filterName": "equals_in_array", - "propertyToCheck": "references", - "value": "IMAGE REFERENCE", - "propertyInArray": "docType" + "filterName": "showDependenciesFilter" } ] },