• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Clinical-Genomics / cg / 10264300180

06 Aug 2024 09:52AM UTC coverage: 84.348%. First build
10264300180

Pull #3521

github

web-flow
Merge 0567ad449 into ed66523ed
Pull Request #3521: Add application to response

49 of 55 new or added lines in 2 files covered. (89.09%)

20942 of 24828 relevant lines covered (84.35%)

0.84 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

34.48
/cg/services/sample_service/utils.py
1
from datetime import datetime
1✔
2

3
from cg.server.dto.samples.samples_response import (
1✔
4
    ApplicationDTO,
5
    ApplicationVersionDTO,
6
    CustomerDto,
7
    SampleDTO,
8
    SamplesResponse,
9
)
10
from cg.store.models import Application, ApplicationVersion, Sample
1✔
11

12

13
def get_cancel_comment(user_name: str) -> str:
1✔
14
    date: str = datetime.now().strftime("%Y-%m-%d")
×
15
    return f"Cancelled {date} by {user_name}"
×
16

17

18
def get_confirmation_message(sample_ids: list[str], case_ids: list[str]) -> str:
1✔
19
    message = f"Cancelled {len(sample_ids)} samples. "
×
20
    if case_ids:
×
21
        cases = ", ".join(case_ids)
×
22
        message += f"Found {len(case_ids)} cases with additional samples: {cases}."
×
23
    else:
24
        message += "No case contained additional samples."
×
25
    return message
×
26

27

28
def create_samples_response(samples: list[Sample]) -> SamplesResponse:
1✔
29
    sample_dtos = []
×
30
    for sample in samples:
×
31
        sample_dtos.append(create_sample_dto(sample))
×
32
    return SamplesResponse(samples=sample_dtos, total=len(samples))
×
33

34

35
def create_sample_dto(sample: Sample) -> SampleDTO:
1✔
NEW
36
    customer = create_customer_dto(sample)
×
NEW
37
    application = create_application_dto(sample.application_version.application)
×
NEW
38
    application_version = create_application_version_dto(sample.application_version)
×
39

40
    return SampleDTO(
×
41
        comment=sample.comment,
42
        customer=customer,
43
        internal_id=sample.internal_id,
44
        name=sample.name,
45
        phenotype_groups=sample.phenotype_groups,
46
        phenotype_terms=sample.phenotype_terms,
47
        priority=sample.priority,
48
        reference_genome=sample.reference_genome,
49
        status=sample.state,
50
        subject_id=sample.subject_id,
51
        tumour=sample.is_tumour,
52
        application=application,
53
        application_version=application_version,
54
    )
55

56

57
def create_customer_dto(sample: Sample) -> CustomerDto:
1✔
NEW
58
    return CustomerDto(
×
59
        internal_id=sample.customer.internal_id,
60
        name=sample.customer.name,
61
    )
62

63

64
def create_application_dto(application: Application) -> ApplicationDTO:
1✔
NEW
65
    return ApplicationDTO(
×
66
        id=application.id,
67
        tag=application.tag,
68
        prep_category=application.prep_category,
69
        is_external=application.is_external,
70
        description=application.description,
71
        is_accredited=application.is_accredited,
72
        turnaround_time=application.turnaround_time,
73
        minimum_order=application.minimum_order,
74
        sequencing_depth=application.sequencing_depth,
75
        min_sequencing_depth=application.min_sequencing_depth,
76
        target_reads=application.target_reads,
77
        percent_reads_guaranteed=application.percent_reads_guaranteed,
78
        sample_amount=application.sample_amount,
79
        sample_volume=application.sample_volume,
80
        sample_concentration=application.sample_concentration,
81
        sample_concentration_minimum=application.sample_concentration_minimum,
82
        sample_concentration_maximum=application.sample_concentration_maximum,
83
        sample_concentration_minimum_cfdna=application.sample_concentration_minimum_cfdna,
84
        sample_concentration_maximum_cfdna=application.sample_concentration_maximum_cfdna,
85
        priority_processing=application.priority_processing,
86
        details=application.details,
87
        limitations=application.details,
88
        percent_kth=application.percent_kth,
89
        comment=application.comment,
90
        is_archived=application.is_archived,
91
        created_at=application.created_at,
92
        updated_at=application.updated_at,
93
    )
94

95

96
def create_application_version_dto(version: ApplicationVersion) -> ApplicationVersionDTO:
1✔
NEW
97
    return ApplicationVersionDTO(
×
98
        id=version.id,
99
        version=version.version,
100
        valid_from=version.valid_from,
101
        price_standard=version.price_standard,
102
        price_priority=version.price_priority,
103
        price_express=version.price_express,
104
        price_research=version.price_research,
105
        price_clinical_trials=version.price_clinical_trials,
106
        comment=version.comment,
107
        created_at=version.created_at,
108
        updated_at=version.updated_at,
109
        application_id=version.application_id,
110
    )
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc