This commit is contained in:
Your Name
2026-08-22 08:51:35 +08:00
parent 6c444a4a04
commit c06d293424
69 changed files with 11431 additions and 1601 deletions
@@ -89,6 +89,19 @@ $sources = [
'duration' => 35,
'intensity' => 2,
]],
'prescriptions' => [[
'id' => 12,
'diagnosis_id' => 101,
'patient_id' => 88,
'prescription_name' => '益气养阴方',
'clinical_diagnosis' => '气阴两虚证',
'case_record' => '{"present_illness":"口渴乏力一月"}',
'herbs' => '[{"name":"黄芪","dosage":15,"formula_type":"主方"}]',
'dose_count' => 7,
'usage_days' => 7,
'times_per_day' => 2,
'audit_status' => 1,
]],
'im_messages' => [[
'id' => 6,
'diagnosis_id' => 101,
@@ -153,6 +166,12 @@ patientSnapshotExpect(count($snapshot['doctor_notes'][0]['report_files']) === 1,
patientSnapshotExpect(count($snapshot['daily_records']['blood_glucose_pressure']) === 1, 'blood daily records are aggregated');
patientSnapshotExpect(count($snapshot['daily_records']['diet']) === 1, 'diet daily records are aggregated');
patientSnapshotExpect(count($snapshot['daily_records']['exercise']) === 1, 'exercise daily records are aggregated');
patientSnapshotExpect(count($snapshot['prescriptions']) === 1, 'formal prescriptions are aggregated');
patientSnapshotExpect($snapshot['prescriptions'][0]['herbs'][0]['name'] === '黄芪', 'prescription herbs are decoded');
patientSnapshotExpect(
$snapshot['prescriptions'][0]['case_record']['present_illness'] === '口渴乏力一月',
'prescription case history snapshot is decoded'
);
patientSnapshotExpect(count($snapshot['chat_records']['tencent_im']) === 1, 'IM chat is aggregated');
patientSnapshotExpect(count($snapshot['chat_records']['wechat_work']) === 1, 'WeChat Work chat is aggregated');
patientSnapshotExpect(count($snapshot['video_calls'][0]['segments']) === 2, 'every call includes transcript segments');
@@ -171,6 +190,7 @@ foreach ([
'blood_record_count' => 1,
'diet_record_count' => 1,
'exercise_record_count' => 1,
'prescription_count' => 1,
'im_message_count' => 1,
'wechat_message_count' => 1,
'call_record_count' => 1,
@@ -198,6 +218,12 @@ patientSnapshotExpect(
'filename-shaped fields are redacted upstream'
);
patientSnapshotExpect(str_contains($upstreamJson, 'attachment_count'), 'attachment presence remains available upstream');
// 方名、外院机构名和药味名是临床内容,不是身份信息;把它们一并脱敏会让模型
// 看不到既往用方,直接影响处方草稿与用药复核。
patientSnapshotExpect(
str_contains($upstreamJson, '益气养阴方'),
'clinical prescription_name survives upstream sanitisation'
);
$longText = str_repeat('超长病历段落甲乙丙。', 20000);
$manyNotes = [];