Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(Improve order flow) Fix delivery types #4126

Merged
merged 2 commits into from
Jan 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from cg.constants.constants import CustomerId
from cg.constants.sequencing import SeqLibraryPrepCategory
from cg.models.orders.sample_base import SexEnum, StatusEnum
from cg.services.orders.constants import ORDER_TYPE_WORKFLOW_MAP
from cg.services.orders.lims_service.service import OrderLimsService
from cg.services.orders.storing.constants import MAF_ORDER_ID
from cg.services.orders.storing.service import StoreOrderService
Expand Down Expand Up @@ -82,8 +83,8 @@ def _create_db_case(self, order: FastqOrder, db_order: Order) -> Case:
"""Return a Case database object."""
priority: str = order.samples[0].priority
case: Case = self.status_db.add_case(
data_analysis=Workflow.RAW_DATA,
data_delivery=DataDelivery.FASTQ,
data_analysis=ORDER_TYPE_WORKFLOW_MAP[order.order_type],
data_delivery=DataDelivery(order.delivery_type),
name=str(db_order.ticket_id),
priority=priority,
ticket=str(db_order.ticket_id),
Expand All @@ -104,7 +105,7 @@ def _create_db_sample(
comment=sample.comment,
internal_id=sample._generated_lims_id,
ordered=datetime.now(),
original_ticket=str(ticket_id),
original_ticket=ticket_id,
priority=sample.priority,
tumour=sample.tumour,
capture_kit=sample.capture_kit,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from cg.constants import DataDelivery, SexOptions, Workflow
from cg.models.orders.sample_base import StatusEnum
from cg.services.orders.constants import ORDER_TYPE_WORKFLOW_MAP
from cg.services.orders.lims_service.service import OrderLimsService
from cg.services.orders.storing.service import StoreOrderService
from cg.services.orders.validation.workflows.microbial_fastq.models.order import MicrobialFastqOrder
Expand Down Expand Up @@ -46,7 +47,7 @@ def store_order_data_in_status_db(self, order: MicrobialFastqOrder) -> list[Samp
with self.status_db.session.no_autoflush:
for sample in order.samples:
case: Case = self._create_db_case_for_sample(
sample=sample, customer=db_order.customer, ticket_id=str(db_order.ticket_id)
sample=sample, customer=db_order.customer, order=order
)
db_sample: Sample = self._create_db_sample(
sample=sample,
Expand All @@ -73,16 +74,16 @@ def _create_db_order(self, order: MicrobialFastqOrder) -> Order:
return self.status_db.add_order(customer=customer, ticket_id=ticket_id)

def _create_db_case_for_sample(
self, sample: MicrobialFastqSample, customer: Customer, ticket_id: str
self, sample: MicrobialFastqSample, customer: Customer, order: MicrobialFastqOrder
) -> Case:
"""Return a Case database object for a MicrobialFastqSample."""
case_name: str = f"{sample.name}-case"
case: Case = self.status_db.add_case(
data_analysis=Workflow.RAW_DATA,
data_delivery=DataDelivery.FASTQ,
data_analysis=ORDER_TYPE_WORKFLOW_MAP[order.order_type],
data_delivery=DataDelivery(order.delivery_type),
name=case_name,
priority=sample.priority,
ticket=ticket_id,
ticket=str(order._generated_ticket_id),
)
case.customer = customer
return case
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

from cg.constants import DataDelivery, Workflow
from cg.models.orders.sample_base import StatusEnum
from cg.services.orders.constants import ORDER_TYPE_WORKFLOW_MAP
from cg.services.orders.lims_service.service import OrderLimsService
from cg.services.orders.storing.service import StoreOrderService
from cg.services.orders.validation.workflows.pacbio_long_read.models.order import PacbioOrder
Expand All @@ -28,7 +29,7 @@ def store_order(self, order: PacbioOrder) -> dict:
order_name=order.name,
workflow=Workflow.RAW_DATA,
customer=order.customer,
delivery_type=order.delivery_type,
delivery_type=DataDelivery(order.delivery_type),
)
self._fill_in_sample_ids(samples=order.samples, lims_map=lims_map)
new_samples = self.store_order_data_in_status_db(order=order)
Expand All @@ -50,7 +51,7 @@ def store_order_data_in_status_db(self, order: PacbioOrder) -> list[Sample]:
case: Case = self._create_db_case_for_sample(
sample=sample,
customer=status_db_order.customer,
ticket_id=str(status_db_order.ticket_id),
order=order,
)
db_sample: Sample = self._create_db_sample(
sample=sample,
Expand All @@ -77,16 +78,16 @@ def _create_db_order(self, order: PacbioOrder) -> Order:
return self.status_db.add_order(customer=customer, ticket_id=ticket_id)

def _create_db_case_for_sample(
islean marked this conversation as resolved.
Show resolved Hide resolved
self, sample: PacbioSample, customer: Customer, ticket_id: str
self, sample: PacbioSample, customer: Customer, order: PacbioOrder
) -> Case:
"""Return a Case database object for a PacbioSample."""
case_name: str = f"{sample.name}-case"
case: Case = self.status_db.add_case(
data_analysis=Workflow.RAW_DATA,
data_delivery=DataDelivery.BAM,
data_analysis=ORDER_TYPE_WORKFLOW_MAP[order.order_type],
data_delivery=DataDelivery(order.delivery_type),
name=case_name,
priority=sample.priority,
ticket=ticket_id,
ticket=str(order._generated_ticket_id),
)
case.customer = customer
return case
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from enum import Enum
from enum import StrEnum

from cg.constants import DataDelivery


class PacbioDeliveryType(Enum):
class PacbioDeliveryType(StrEnum):
BAM = DataDelivery.BAM
NO_DELIVERY = DataDelivery.NO_DELIVERY
Loading