using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Rdh.SocketServer.Client.Models
{
///
/// 表示上传手术用药信息的类
///
public class RequestOperationUsageProtocol : EleMedKitProtocol
{
public RequestOperationUsageProtocol()
{
this.Command = EleMedKitCommand.RequestPatientOperationUsage;
this.MinLines = base.MinLines + 5;
}
public UserInfoProtocol? UserInfo { get; set; }
public string? RoomCode { get; set; }
public PatientOperationProtocol? OperationInfo { get; set; }
public List? ListDrugs { get; set; }
public string LineEnd { get => EleMedKitProtocolFlags.LineSpiltor; }
public override string GetContent()
{
return base.GetContent()
+ UserInfo?.ToString()
+ AddLineContent(RoomCode)
+ OperationInfo?.ToString()
+ AddList(ListDrugs)
+ AddLineContent(LineEnd)
+ AddLineContent(CountFlag);
}
public override bool ParseContent(string[] lines)
{
if (!base.ParseContent(lines)
|| lines.Length < MinLines)
{
return false;
}
if (!lines[lines.Length - 2].Contains(LineEnd))
{
return false;
}
UserInfo = new UserInfoProtocol();
if (!UserInfo.ParseContent(lines[2]))
{
return false;
}
RoomCode = EleMedKitProtocolHelper.GetLineContent(lines[3]);
OperationInfo = new PatientOperationProtocol();
if (!OperationInfo.ParseContent(lines[4]))
{
return false;
}
ListDrugs = new List();
for (int i = 5; i < lines.Length - 2; i++)
{
DrugUsageProtocol drugInfo = new DrugUsageProtocol();
if (drugInfo.ParseContent(lines[i]))
{
ListDrugs.Add(drugInfo);
}
else
{
return false;
}
}
return base.ParseContent(lines);
}
}
}