fix(lab-sample): 新旧实验室样本台账补录双向联动
新模块读取旧台账补录并映射字段;旧台账保存时同步到新补充表与生产传染四项,新模块保存时回写旧补录。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
2aecb69cc4
commit
c0aba421da
3 files changed
+339
-2
No files matched your search
@@ -133,6 +133,54 @@ class LabSampleProcessingFieldsTest(unittest.TestCase):
|
||||
self.assertEqual(_infectious_code("正常"), "zc")
|
||||
self.assertEqual(_infectious_code("不正常"), "bzc")
|
||||
|
||||
def test_legacy_supplement_fills_empty_source_fields(self):
|
||||
from app.services.lab_sample_processing import _build_row, _merge_extra_with_legacy
|
||||
from types import SimpleNamespace
|
||||
|
||||
extra = _merge_extra_with_legacy(
|
||||
{},
|
||||
{"infectiousFourTestLabel": "正常", "labMaterialCode": "202611006"},
|
||||
)
|
||||
sample = SimpleNamespace(id="S1", sample_code="UBMC202611006", collection_protocol_id=None)
|
||||
reception = SimpleNamespace(
|
||||
id="R1",
|
||||
reception_time=None,
|
||||
receive_temperature=None,
|
||||
handler_name=None,
|
||||
remark=None,
|
||||
lab_storage_code="UBMC202611006",
|
||||
)
|
||||
production = SimpleNamespace(
|
||||
id="PR1",
|
||||
original_blood_weight_g=None,
|
||||
hes_volume_ml=None,
|
||||
blood_type=None,
|
||||
infectious_four_test_result=None,
|
||||
enriched_blood_weight_g=None,
|
||||
cryopreservation_volume_ml=None,
|
||||
handler_name=None,
|
||||
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_UBMC,
|
||||
sample=sample,
|
||||
type_name="脐血单个核细胞",
|
||||
party=None,
|
||||
coll=None,
|
||||
hospital=None,
|
||||
reception=reception,
|
||||
production=production,
|
||||
extra=extra,
|
||||
)
|
||||
self.assertEqual(row["infectiousFourCard"], "正常")
|
||||
self.assertEqual(row["labMaterialCode"], "202611006")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user