Skip to content

Commit

Permalink
Fix models to reflect new samples (#3671) (patch)
Browse files Browse the repository at this point in the history
### Fixed

- Required fields are marked as required for new samples
  • Loading branch information
islean authored Aug 30, 2024
1 parent 0c9b4e4 commit 9391d82
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
from pydantic import Discriminator, Tag
from typing_extensions import Annotated

from cg.services.order_validation_service.models.case import Case
from cg.services.order_validation_service.workflows.balsamic.models.sample import BalsamicSample
from cg.services.order_validation_service.models.discriminators import has_internal_id
from cg.services.order_validation_service.models.existing_sample import ExistingSample
from cg.services.order_validation_service.workflows.balsamic.models.sample import (
BalsamicSample,
)

NewSample = Annotated[BalsamicSample, Tag("new")]
OldSample = Annotated[ExistingSample, Tag("existing")]


class BalsamicCase(Case):
samples: list[BalsamicSample]
cohorts: list[str] | None = None
samples: list[Annotated[NewSample | OldSample, Discriminator(has_internal_id)]]
synopsis: str | None = None
Original file line number Diff line number Diff line change
@@ -1,8 +1,20 @@
from pydantic import Discriminator, Tag
from typing_extensions import Annotated

from cg.services.order_validation_service.models.discriminators import has_internal_id
from cg.services.order_validation_service.models.existing_case import ExistingCase
from cg.services.order_validation_service.models.order_with_cases import OrderWithCases
from cg.services.order_validation_service.workflows.balsamic.constants import BalsamicDeliveryType
from cg.services.order_validation_service.workflows.balsamic.models.case import BalsamicCase
from cg.services.order_validation_service.workflows.balsamic.constants import (
BalsamicDeliveryType,
)
from cg.services.order_validation_service.workflows.balsamic.models.case import (
BalsamicCase,
)

NewCase = Annotated[BalsamicCase, Tag("new")]
OldCase = Annotated[ExistingCase, Tag("existing")]


class BalsamicOrder(OrderWithCases):
cases: list[BalsamicCase]
cases: list[Annotated[NewCase | OldCase, Discriminator(has_internal_id)]]
delivery_type: BalsamicDeliveryType
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
from pydantic import Discriminator, Tag
from typing_extensions import Annotated

from cg.services.order_validation_service.models.case import Case
from cg.services.order_validation_service.workflows.mip_dna.models.sample import MipDnaSample
from cg.services.order_validation_service.models.discriminators import has_internal_id
from cg.services.order_validation_service.models.existing_sample import ExistingSample
from cg.services.order_validation_service.workflows.mip_dna.models.sample import (
MipDnaSample,
)

NewSample = Annotated[MipDnaSample, Tag("new")]
OldSample = Annotated[ExistingSample, Tag("existing")]


class MipDnaCase(Case):
samples: list[MipDnaSample]
cohorts: list[str] | None = None
panels: list[str]
synopsis: str | None = None
samples: list[Annotated[NewSample | OldSample, Discriminator(has_internal_id)]]
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
from pydantic import Discriminator, Tag
from typing_extensions import Annotated

from cg.services.order_validation_service.models.discriminators import has_internal_id
from cg.services.order_validation_service.models.existing_case import ExistingCase
from cg.services.order_validation_service.models.order_with_cases import OrderWithCases
from cg.services.order_validation_service.workflows.mip_dna.models.case import MipDnaCase
from cg.services.order_validation_service.workflows.mip_dna.models.case import (
MipDnaCase,
)

NewCase = Annotated[MipDnaCase, Tag("new")]
OldCase = Annotated[ExistingCase, Tag("existing")]


class MipDnaOrder(OrderWithCases):
cases: list[MipDnaCase]
cases: list[Annotated[NewCase | OldCase, Discriminator(has_internal_id)]]
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from pydantic import Field

from cg.models.orders.sample_base import NAME_PATTERN, ControlEnum, SexEnum, StatusEnum
from cg.services.order_validation_service.constants import TissueBlockEnum
from cg.services.order_validation_service.models.sample import Sample
Expand All @@ -14,9 +15,9 @@ class MipDnaSample(Sample):
phenotype_groups: list[str] | None = None
phenotype_terms: list[str] | None = None
post_formalin_fixation_time: int | None = None
sex: SexEnum | None = None
source: str | None = None
status: StatusEnum | None = None
sex: SexEnum
source: str
status: StatusEnum
subject_id: str = Field(pattern=NAME_PATTERN, max_length=128)
tissue_block_size: TissueBlockEnum | None = None
concentration_ng_ul: float | None = None

0 comments on commit 9391d82

Please sign in to comment.