fix(lab-sample): 台账改聚合真实市场生产质检数据
去掉 Excel 演示独有行,源表字段优先于补充表;按协议样本与科研捐献接收关联已发生业务数据,并修复导出分页超限。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
77d45d0bc5
commit
5698a9dfc4
4 files changed
+197
-40
No files matched your search
@@ -48,6 +48,60 @@ class LabSampleProcessingFieldsTest(unittest.TestCase):
|
||||
self.assertEqual(fmap["cd34Count"].dept, DEPT_QC)
|
||||
self.assertEqual(fmap["originalBloodWeightG"].dept, DEPT_PRODUCTION)
|
||||
|
||||
def test_source_fields_not_overridden_by_extra(self):
|
||||
from app.services.lab_sample_processing import _build_row
|
||||
from types import SimpleNamespace
|
||||
|
||||
sample = SimpleNamespace(id="S1", sample_code="ZKZX34000865", collection_protocol_id="P1")
|
||||
party = SimpleNamespace(mother_name="真实妈妈")
|
||||
coll = SimpleNamespace(sample_collect_time=None)
|
||||
hospital = SimpleNamespace(hospital_name="真实医院")
|
||||
reception = SimpleNamespace(
|
||||
id="R1",
|
||||
reception_time=None,
|
||||
receive_temperature=None,
|
||||
handler_name="接收人",
|
||||
remark=None,
|
||||
lab_storage_code="B0000103",
|
||||
)
|
||||
production = SimpleNamespace(
|
||||
id="PR1",
|
||||
original_blood_weight_g=72.08,
|
||||
hes_volume_ml=None,
|
||||
blood_type="B",
|
||||
infectious_four_test_result="正常",
|
||||
enriched_blood_weight_g=None,
|
||||
cryopreservation_volume_ml=None,
|
||||
handler_name="操作人",
|
||||
remark=None,
|
||||
original_blood_volume_ml=None,
|
||||
nucleated_cell_count_1e8=None,
|
||||
inoculation_amount=None,
|
||||
cryopreservation_time=None,
|
||||
storage_total_tubes=None,
|
||||
available_cell_count_1e7=None,
|
||||
)
|
||||
row = _build_row(
|
||||
dataset=DATASET_HSC,
|
||||
sample=sample,
|
||||
type_name="围产期造血干细胞",
|
||||
party=party,
|
||||
coll=coll,
|
||||
hospital=hospital,
|
||||
reception=reception,
|
||||
production=production,
|
||||
extra={
|
||||
"motherName": "Excel妈妈",
|
||||
"originalBloodWeightG": 1,
|
||||
"cd34Count": "11.4",
|
||||
},
|
||||
)
|
||||
self.assertEqual(row["motherName"], "真实妈妈")
|
||||
self.assertEqual(row["originalBloodWeightG"], 72.08)
|
||||
self.assertEqual(row["bloodType"], "B")
|
||||
self.assertEqual(row["cd34Count"], "11.4")
|
||||
self.assertFalse(row["fromExtraOnly"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user