# patient_return_visit — 诊所回访任务记录(展示用,全瑞尔)
#
# 消费 sql_source.fact_returnvisit_out(已 customer_id→patient_id + org∈EMR 全部诊所过滤,随 DW 全量)。
# upsert 资源(无 emits,同 patient/relation):落 PatientReturnVisit 表,不进 transaction/fact、不进召回。
canonical: patient_return_visit

primary:
  table: fact_returnvisit_out
  key: id
  dedup_by: id

field_mapping:
  externalId:        id
  patientExternalId: patient_id          # = customer_id(源 SQL 已 alias)
  clinicId:          organization_id
  taskDate:          task_date
  type:              return_visit_type_name
  status:            return_visit_status_name
  taskStatus:        task_status_name
  treatmentItems:    treatment_items_full   # 大类·子项 合并(transforms H);单字段展示,不镜像 host 两列
  followContent:     follow_content
  result:            return_visit_result
  # 执行本次回访的客服(≠ 患者主档的 dedicatedCs「专属客服」,可以是不同人)。
  #   给"按诊所取客服名册 → 主管指派"用:host 无「客服归属诊所」字段,只能按回访行为反推。
  #   ⚠️ 客服与诊所是多对多(实测 24% 跨诊所),名册里同一人会出现在多个诊所下,这是正常的。
  taskDirectorId:    task_director_id
  taskDirectorName:  task_director
  # 宿主侧时间(≠ PAC 入库时间 created_at/updated_at,后者重摄会被刷新)。
  #   task_date 含未来排程(生产实测最远 2033),名册按"近 N 月在岗"筛人时用创建时间更准。
  sourceCreatedAt:   created_date
  sourceUpdatedAt:   updated_date
