From 2fdc83fa47b33293bddaccb43e759b4187af3fb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tadeusz=20Miesi=C4=85c?= <tadeusz.miesiac@gmail.com> Date: Thu, 28 Sep 2023 12:58:33 +0200 Subject: [PATCH] feat(drug schema): added drug schema to models --- src/models/drugSchema.ts | 19 +++++++++++++++++++ src/models/referenceSchema.ts | 18 ++++++++++++++++++ src/models/targetElementSchema.ts | 7 +++++++ src/models/targetParticipantSchema.ts | 9 +++++++++ src/models/targetSchema.ts | 15 +++++++++++++++ 5 files changed, 68 insertions(+) create mode 100644 src/models/drugSchema.ts create mode 100644 src/models/referenceSchema.ts create mode 100644 src/models/targetElementSchema.ts create mode 100644 src/models/targetParticipantSchema.ts create mode 100644 src/models/targetSchema.ts diff --git a/src/models/drugSchema.ts b/src/models/drugSchema.ts new file mode 100644 index 00000000..346dfa96 --- /dev/null +++ b/src/models/drugSchema.ts @@ -0,0 +1,19 @@ +import { z } from 'zod'; +import { referenceSchema } from './referenceSchema'; +import { targetSchema } from './targetSchema'; + +export const drugSchema = z.object({ + /** identifier of the chemical */ + id: z.string(), + name: z.string(), + description: z.string(), + /** list of synonyms */ + synonyms: z.array(z.string()), + brandNames: z.array(z.string()), + /** does drug cross blood brain barrier */ + bloodBrainBarrier: z.string(), + /** list of references */ + references: z.array(referenceSchema), + /** list of targets */ + targets: z.array(targetSchema), +}); diff --git a/src/models/referenceSchema.ts b/src/models/referenceSchema.ts new file mode 100644 index 00000000..029c6ecb --- /dev/null +++ b/src/models/referenceSchema.ts @@ -0,0 +1,18 @@ +import { z } from 'zod'; + +export const referenceSchema = z.object({ + link: z.string(), + article: z.object({ + title: z.string(), + authors: z.array(z.string()), + journal: z.string(), + year: z.number(), + link: z.string(), + pubmedId: z.string(), + citationCount: z.number(), + }), + type: z.string(), + resource: z.string(), + id: z.number(), + annotatorClassName: z.string(), +}); diff --git a/src/models/targetElementSchema.ts b/src/models/targetElementSchema.ts new file mode 100644 index 00000000..090be95c --- /dev/null +++ b/src/models/targetElementSchema.ts @@ -0,0 +1,7 @@ +import { z } from 'zod'; + +export const targetElementSchema = z.object({ + id: z.number(), + modelId: z.number(), + type: z.string(), +}); diff --git a/src/models/targetParticipantSchema.ts b/src/models/targetParticipantSchema.ts new file mode 100644 index 00000000..fbf82147 --- /dev/null +++ b/src/models/targetParticipantSchema.ts @@ -0,0 +1,9 @@ +import { z } from 'zod'; + +export const targetParticipantSchema = z.object({ + link: z.string(), + type: z.string(), + resource: z.string(), + id: z.number(), + annotatorClassName: z.string(), +}); diff --git a/src/models/targetSchema.ts b/src/models/targetSchema.ts new file mode 100644 index 00000000..bda0bfca --- /dev/null +++ b/src/models/targetSchema.ts @@ -0,0 +1,15 @@ +import { z } from 'zod'; +import { referenceSchema } from './referenceSchema'; +import { targetElementSchema } from './targetElementSchema'; +import { targetParticipantSchema } from './targetParticipantSchema'; + +export const targetSchema = z.object({ + /** target name */ + name: z.string(), + /** list of target references */ + references: z.array(referenceSchema), + /** list of elements on the map associated with this target */ + targetElements: z.array(targetElementSchema), + /** list of identifiers associated with this target */ + targetParticipants: z.array(targetParticipantSchema), +}); -- GitLab