package com.openhis.yb.dto;

import java.util.Date;
import java.util.List;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.Length;

import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 【3101】输入-参保人信息（节点标识：patient_dtos）
 * 
 * @author Thanking
 */
@Data
@Accessors(chain = true)
public class Yb3101InputPatientDto {

    /**
     * 参保人标识：参保人唯一ID
     */
    @NotBlank
    @Length(max = 50)
    @JSONField(name = "patn_id")
    private String patnId;

    /**
     * 姓名
     */
    @NotBlank
    @Length(max = 50)
    @JSONField(name = "patn_name")
    private String patnName;

    /**
     * 性别：参考字典表
     */
    @NotBlank
    @Length(max = 3)
    @JSONField(name = "gend")
    private String gend;

    /**
     * 出生日期：格式：yyyy-MM-dd
     */
    @NotNull
    @JSONField(name = "brdy")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date brdy;

    /**
     * 统筹区编码：参保人所属统筹区
     */
    @NotBlank
    @Length(max = 10)
    @JSONField(name = "poolarea")
    private String poolarea;

    /**
     * 当前就诊标识：本次就诊记录唯一ID
     */
    @NotBlank
    @Length(max = 50)
    @JSONField(name = "curr_mdtrt_id")
    private String currMdtrtId;

    /**
     * 就诊信息集合
     */
    @NotEmpty
    @JSONField(name = "fsi_encounter_dtos")
    private List<Yb3101InputFsiEncounterDto> fsiEncounterDtos;

    /**
     * 医院信息
     */
    @JSONField(name = "fsi_his_data_dto")
    private String fsiHisDataDto;

}
