Skip to content


Data Models

APGAP is built on a modular architecture composed of several distinct classes, each designed to handle specific data entities and logical operations.

To ensure clarity and ease of navigation, we have documented these classes separately for each component of the applicatiopn. This granular approach allows you to focus on the specific data structures relevant to your current integration task without navigating through unrelated schemas.

Metadata Data Model

The Metadata Data Model is used to add metadata tags to sequence files. Each tag consists of a key and a value. Platform Administrators can add and edit metadata keys and define what type of value a key has.

---
title: Metadata tags
---

classDiagram
    Key: +String name
    Key: +String data_type
    note for Key "datas_type can be:<br>text<br>number<br>date<br>select<br>GPS"

    Value: +String name
    note for Value "Instances of Value hold the actual<br> value of a metadata tag on a<br> file."

    MetadataTag: +Key key
    MetadataTag: +Value value
    MetadataTag: +[Dataset] dataset
    MetadataTag: +[File] file
    `MetadataTag` --> `Key`
    `MetadataTag` --> `Value`
    note for MetadataTag "Instances of MetadataTag hold the<br> references to the key of the tag and the<br> actual value. Values are being reused, <br>so multiple files/datasets can<br> point to the same metadata tag."

    SourceType: +String name
    SourceType: +int sort_order
    note for SourceType "e.g. Human Host, Wastewater Sample, etc."

    MetadataTemplate: +Key key
    MetadataTemplate: +String name
    MetadataTemplate: +SourceType source_type
    MetadataTemplate: +bool is_core
    `MetadataTemplate` --> `SourceType`
    `MetadataTemplate` --> `Key`
    note for MetadataTemplate "instances of MetadataTemplate<br> map a key to the source type"