Padrão de objeto de transferência de dados

desculpe, eu sou novato no aplicativo corporativo, bem como no padrão de design. Pode ser que esta questão ocorra falta de conhecimento sobre o padrão de design. Eu achei que é melhor usar o DTO para transferir dados.

minha classe de entidade de negócios como abaixo:

public class Patient
{    
    public string ID { get; set; }
    public string FullName { get; set; }
    public string FirstName { get; set; }
    public string Surname { get; set; }
}

por isso, no meu aplicativo, forneça apenas ID e ID do hospital. por isso pede outro serviço web e obtém informações sobre a pessoa

 public class PersonDTO
 {
     public string NIC { get; set; }
     public string FullName { get; set; }
     public string FirstName { get; set; }
     public string BirthPlace { get; set; }
     public string BirthCertificateID { get; set; }
 }

Então, com base nessas informações eu estou indo para o objeto paciente. (Usando o padrão DTO)

Então eu pensei em escrever uma nova classe para converter isso da seguinte maneira.

public class PatientDO
{
    public static Patient ConvertToEntity(
        PatientRegistrationDTO pregDTO,
        PersonDTO person
    )
    {
        Patient p = new Patient();
        p.NIC = pregDTO.NIC;
        p.FullName = person.FullName;
        p.FirstName = person.FirstName;
        return p;
    }
}

mas ultimamente eu li algunsArtigose eles usaramSerializer Helper class assim como oXmlSerializer Eu não consigo entender por que eles usaram algo assim.

para o padrão DTO é que precisa usar o XmlSerializer e por que ele é usado?