phc-ingestion 0.10.6__py3-none-any.whl → 0.10.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -72,9 +72,16 @@ class ManifestAssembler:
72
72
 
73
73
  response = self.client.invoke(path, "get", None, params)
74
74
  entries = response.get("entry", [])
75
- patient = entries[0]["resource"] if len(entries) > 0 else None
76
75
 
77
- return patient
76
+ if len(entries) == 0:
77
+ return None
78
+
79
+ if len(entries) > 1:
80
+ raise RuntimeError(
81
+ f"Found {len(entries)} patients with kit id {self.kit_id}. Expected 1."
82
+ )
83
+
84
+ return entries[0]["resource"]
78
85
 
79
86
  def __fetch_resource_by_type_and_reference(
80
87
  self,
@@ -92,28 +99,16 @@ class ManifestAssembler:
92
99
  except RuntimeError:
93
100
  return None
94
101
 
95
- def __extract_identifier_from_resource(self, resource: Resource | None) -> str:
96
- if not resource:
97
- return ""
98
-
102
+ def __extract_identifier_from_resource(self, resource: Resource) -> str:
99
103
  identifiers = resource.get("identifier", [])
100
104
  return identifiers[0].get("value", "") if identifiers else ""
101
105
 
102
106
  def __extract_id_from_reference(self, reference: Reference) -> str:
103
- if not reference:
104
- return ""
105
-
106
- ref_string = reference.get("reference")
107
- if not ref_string:
108
- return ""
109
-
107
+ ref_string = reference.get("reference", "")
110
108
  parts = ref_string.split("/")
111
109
  return parts[1] if len(parts) > 1 else parts[0]
112
110
 
113
111
  def __extract_elation_mrn(self, patient: Patient) -> str:
114
- if not patient:
115
- return ""
116
-
117
112
  identifier = next(
118
113
  (
119
114
  x
@@ -134,12 +129,9 @@ class ManifestAssembler:
134
129
 
135
130
  def __parse_human_name(self, human_name: list[HumanName] | None):
136
131
  if not human_name:
137
- return None
138
-
139
- human_name = next((x for x in human_name if x.get("use") == "official"), None)
132
+ return {}
140
133
 
141
- if not human_name:
142
- return None
134
+ human_name = next((x for x in human_name if x.get("use") == "official"), human_name[0])
143
135
 
144
136
  last_name = human_name.get("family", "")
145
137
  first_name = human_name.get("given", [])[0]
@@ -185,10 +177,10 @@ class ManifestAssembler:
185
177
  "indication": NEBULA_INDICATION,
186
178
  "indicationDisplay": NEBULA_INDICATION,
187
179
  "patientInfo": {
188
- "lastName": patient_info.get("lastName"),
180
+ "lastName": patient_info.get("lastName", ""),
189
181
  "dob": datetime.fromisoformat(patient_birth_date).strftime("%Y-%m-%d"),
190
- "firstName": patient_info.get("firstName"),
191
- "gender": patient["gender"],
182
+ "firstName": patient_info.get("firstName", ""),
183
+ "gender": patient.get("gender", ""),
192
184
  },
193
185
  **(
194
186
  {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: phc-ingestion
3
- Version: 0.10.6
3
+ Version: 0.10.7
4
4
  Summary: Functions for LifeOmic PHC genomic ingestions
5
5
  License: MIT
6
6
  Author-email: LifeOmic Development <development@lifeomic.com>
@@ -28,7 +28,7 @@ ingestion/generic/process.py,sha256=ZaVnZ_gx9faDUsuresI1A0oCegTa-dPQT7DBFMeZGyY,
28
28
  ingestion/generic/utils.py,sha256=1MEIru7uq38IjUdL8lcHqDH0oTki9uWrz1f2e-pmRoU,2814
29
29
  ingestion/nebula/__init__.py,sha256=VauK-rup_N8ZXVohx3HYqHX_PE_WoPyMUhdv2R7al4o,45
30
30
  ingestion/nebula/constants.py,sha256=thKqSwemdaAwAmKvF4FEVI9l1Ph5ergsnMlx6nWte7E,357
31
- ingestion/nebula/manifest_assembler.py,sha256=OPUnuvzL1Bti_1-4N3fDP22wHtaK__4Bwh5K21Mg-C4,6416
31
+ ingestion/nebula/manifest_assembler.py,sha256=N_19PLdbm9GaptsYfK1whTmVas5qZEtZC6VId_EFVy0,6353
32
32
  ingestion/nebula/process.py,sha256=D2ct9tF60ZIP_jZdjvgjfTkhEAkNNEhxaSqa04CtNR8,2237
33
33
  ingestion/nextgen/__init__.py,sha256=7LQ-h_Bvc5P1QcHMdzsqi1Qm4fTJn04-ozar2ty9wSc,59
34
34
  ingestion/nextgen/process.py,sha256=5Z0RfclwTAYZruGDiLPutjPCYFh1DJpoWY9dnttghT4,3993
@@ -59,6 +59,6 @@ ingestion/vcf_standardization/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQe
59
59
  ingestion/vcf_standardization/util/af_helpers.py,sha256=dpTzoeIQVeBRt0ETF3a9rp5ojZqznHg4x_hCZ8OPcOg,1061
60
60
  ingestion/vcf_standardization/util/dp_helpers.py,sha256=Nq8oLOLObu4_pv16qwwgpALRlUoJVCULrd9cFOD-eoI,823
61
61
  ingestion/vcf_standardization/util/read_write.py,sha256=x3Pf6Dq8tmolblbCS5CrNmrcHS3FGfqBSFpFgvFGC4g,2526
62
- phc_ingestion-0.10.6.dist-info/WHEEL,sha256=B19PGBCYhWaz2p_UjAoRVh767nYQfk14Sn4TpIZ-nfU,87
63
- phc_ingestion-0.10.6.dist-info/METADATA,sha256=IhIQUPLXKsepjBwgwe4ARhaZ2fKrmvsJhsgey1Yui7o,677
64
- phc_ingestion-0.10.6.dist-info/RECORD,,
62
+ phc_ingestion-0.10.7.dist-info/WHEEL,sha256=B19PGBCYhWaz2p_UjAoRVh767nYQfk14Sn4TpIZ-nfU,87
63
+ phc_ingestion-0.10.7.dist-info/METADATA,sha256=fPt-rGHMt6ORmjrw1xKM8MDarx9A_b_no3B9UeurMRw,677
64
+ phc_ingestion-0.10.7.dist-info/RECORD,,