From 1133e0c51108000ae6091dd20f0b68422b9a904e Mon Sep 17 00:00:00 2001 From: gromdimon Date: Fri, 17 Nov 2023 12:43:04 +0100 Subject: [PATCH 1/6] feat: cada-prio integration --- backend/app/api/internal/endpoints/proxy.py | 4 ++ backend/app/core/config.py | 2 + backend/env.dev | 1 + frontend/src/api/cadaprio.ts | 27 +++++++++ frontend/src/api/common.ts | 1 + .../src/components/CaseInformationCard.vue | 35 ++++++++++- frontend/src/stores/cadaprio.ts | 59 +++++++++++++++++++ 7 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 frontend/src/api/cadaprio.ts create mode 100644 frontend/src/stores/cadaprio.ts diff --git a/backend/app/api/internal/endpoints/proxy.py b/backend/app/api/internal/endpoints/proxy.py index 184ccf6c..c6354668 100644 --- a/backend/app/api/internal/endpoints/proxy.py +++ b/backend/app/api/internal/endpoints/proxy.py @@ -46,6 +46,10 @@ async def reverse_proxy(request: Request) -> Response: backend_url = settings.BACKEND_PREFIX_NGINX + url.path.replace("/internal/proxy/nginx", "") elif url.path.startswith(f"{settings.INTERNAL_STR}/proxy/dotty"): backend_url = settings.BACKEND_PREFIX_DOTTY + url.path.replace("/internal/proxy/dotty", "") + elif url.path.startswith(f"{settings.INTERNAL_STR}/proxy/cada-prio"): + backend_url = settings.BACKEND_PREFIX_CADA_PRIO + url.path.replace( + "/internal/proxy/cada-prio", "" + ) if backend_url: client = httpx.AsyncClient() diff --git a/backend/app/core/config.py b/backend/app/core/config.py index 624936d6..5c975495 100644 --- a/backend/app/core/config.py +++ b/backend/app/core/config.py @@ -93,6 +93,8 @@ def assemble_cors_origins(cls, v: str | list[str]) -> list[str] | str: # pragma BACKEND_PREFIX_NGINX: str = "http://nginx:80" #: Prefix for the backend of dotty service. BACKEND_PREFIX_DOTTY: str = "http://dotty:8080" + #: Prefix for the backend of cada-prio service. + BACKEND_PREFIX_CADA_PRIO: str = "http://cada-prio:8080" #: URL to REDIS service. REDIS_URL: str = "redis://redis:6379" diff --git a/backend/env.dev b/backend/env.dev index 13d17071..41e0b764 100644 --- a/backend/env.dev +++ b/backend/env.dev @@ -17,6 +17,7 @@ BACKEND_PREFIX_MEHARI=http://localhost:3002 BACKEND_PREFIX_VIGUNO=http://localhost:3003 BACKEND_PREFIX_NGINX=http://localhost:3004 BACKEND_PREFIX_DOTTY=http://localhost:3005 +BACKEND_PREFIX_CADA_PRIORI=http://localhost:3006 # Access to redis as it runs Docker Compose. REDIS_URL=redis://localhost:3030 diff --git a/frontend/src/api/cadaprio.ts b/frontend/src/api/cadaprio.ts new file mode 100644 index 00000000..698c4b8c --- /dev/null +++ b/frontend/src/api/cadaprio.ts @@ -0,0 +1,27 @@ +import { API_INTERNAL_BASE_PREFIX_CADA_PRIO } from "./common" + +const API_BASE_URL = `${API_INTERNAL_BASE_PREFIX_CADA_PRIO}/` + +export class CadaPrioClient { + private apiBaseUrl: string + private csrfToken: string | null + + constructor(apiBaseUrl?: string, csrfToken?: string) { + this.apiBaseUrl = apiBaseUrl ?? API_BASE_URL + this.csrfToken = csrfToken ?? null + } + + async predictGeneImpact( + hpoTerms: string[], + geneSymbols?: string[] + ): Promise { + const geneSuffix = geneSymbols ? `&gene_symbols=${geneSymbols.join(',')}` : '' + const url = + `${this.apiBaseUrl}api/v1/predict?hpo_terms=${hpoTerms.join(',')}${geneSuffix}` + + const response = await fetch(url, { + method: 'GET' + }) + return await response.json() + } +} \ No newline at end of file diff --git a/frontend/src/api/common.ts b/frontend/src/api/common.ts index 50b15b4c..ad314393 100644 --- a/frontend/src/api/common.ts +++ b/frontend/src/api/common.ts @@ -4,4 +4,5 @@ export const API_INTERNAL_BASE_PREFIX_MEHARI = '/internal/proxy/mehari' export const API_INTERNAL_BASE_PREFIX_VIGUNO = '/internal/proxy/viguno' export const API_INTERNAL_BASE_PREFIX_NGINX = '/internal/proxy/nginx' export const API_INTERNAL_BASE_PREFIX_DOTTY = '/internal/proxy/dotty' +export const API_INTERNAL_BASE_PREFIX_CADA_PRIO = '/internal/proxy/cada-prio' export const API_V1_BASE_PREFIX = '/api/v1/' diff --git a/frontend/src/components/CaseInformationCard.vue b/frontend/src/components/CaseInformationCard.vue index 8386e2ab..3fe0c8b2 100644 --- a/frontend/src/components/CaseInformationCard.vue +++ b/frontend/src/components/CaseInformationCard.vue @@ -1,6 +1,6 @@