using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
namespace medical.transfomer.dto
{
public class MedicalTransactionSystem
{
///
/// 医保交易业务对象(入参)
///
public class MedicalTransaction
{
///
/// 交易编号(详见接口列表)
///
[Required]
[StringLength(4)]
public string Infno { get; set; }
///
/// 发送方报文ID(主键)
/// 格式:定点医药机构编号(12)+时间(14)+顺序号(4)
///
[Key]
[StringLength(30)]
[RegularExpression(@"^\d{12}\d{14}\d{4}$", ErrorMessage = "报文ID格式无效")]
public string MsgId { get; set; }
///
/// 就医地医保区划
///
[Required]
[StringLength(6)]
public string MdtrtareaAdmvs { get; set; }
///
/// 参保地医保区划(人员编号存在时必填)
///
[StringLength(6)]
public string InsuplcAdmdvs { get; set; }
///
/// 接收方系统代码
///
[Required]
[StringLength(10)]
public string RecerSysCode { get; set; }
///
/// 设备编号
///
[StringLength(100)]
public string DevNo { get; set; }
///
/// 设备安全信息(JSON/XML格式)
///
[Column(TypeName = "text")]
public string DevSafeInfo { get; set; }
///
/// 数字签名信息(安全管理码)
///
[Column(TypeName = "text")]
public string Cainfo { get; set; }
///
/// 签名类型
///
[StringLength(10)]
public SignType Signtype { get; set; }
///
/// 接口版本号
///
[Required]
[StringLength(6)]
public string Infver { get; set; }
///
/// 经办人类别
///
[Required]
public OperatorType OpterType { get; set; }
///
/// 经办人/终端编号
///
[Required]
[StringLength(30)]
public string Opter { get; set; }
///
/// 经办人姓名/终端名称
///
[Required]
[StringLength(50)]
public string OpterName { get; set; }
///
/// 交易时间
///
[Required]
public DateTime InfTime { get; set; }
///
/// 定点医药机构编号
///
[Required]
[StringLength(12)]
public string FixmedinsCode { get; set; }
///
/// 定点医药机构名称
///
[Required]
[StringLength(20)]
public string FixmedinsName { get; set; }
///
/// 交易签到流水号(来自9001交易)
///
[StringLength(30)]
public string SignNo { get; set; }
///
/// 交易输入(.NET对象序列化)
///
[Required]
[Column(TypeName = "text")]
public string Input { get; set; }
}
///
/// 签名类型枚举
///
public enum SignType
{
SM2,
SM3
}
///
/// 经办人类别枚举
///
public enum OperatorType
{
经办人 = 1,
自助终端 = 2,
移动终端 = 3
}
}
}