public async Task <ActionResult> Add(int Id = 0, int CamaId = 0)
        {
            await CargarListados();

            PacienteFormModel model = new PacienteFormModel()
            {
                Id        = Id,
                CamaId    = CamaId,
                Contactos = new List <ContactoPacienteFormModel>()
                {
                    new ContactoPacienteFormModel()
                }
            };

            if (Id > 0)
            {
                var ci = CultureInfo.GetCultureInfo("es-ES");

                var item = await _fichaPacienteService.GetDatosBasicosByIdAsync(Id);

                model.Id             = item.Id.Value;
                model.Nombre         = item.Nombres;
                model.Apellido       = item.Apellidos;
                model.Sexo           = item.Sexo;
                model.NroDocumento   = item.NroDocumento;
                model.GrupoSanguineo = item.GrupoSanguineo;
                model.PrmsId         = item.PrmsId;

                if (item.FechaNacimiento.HasValue)
                {
                    model.FechaNacimiento = item.FechaNacimiento.Value.ToString("d", ci);
                }

                if (item.Peso.HasValue)
                {
                    model.Peso = item.Peso.Value.ToString("N3", ci);
                }

                var contactos = await _fichaPacienteService.GetContactosPacienteAsync(Id);

                if (contactos.Count() > 0)
                {
                    model.Contactos = contactos.Select(c => new ContactoPacienteFormModel()
                    {
                        ContactoId     = c.Id,
                        TipoContactoId = c.TipoContactoId,
                        NombreContacto = c.NombreContacto,
                        NroContacto    = c.NroContacto
                    }).ToList();
                }
            }

            return(View(model));
        }
        public async Task <JsonResult> AddDatosBasicos(PacienteFormModel model)
        {
            var ci = CultureInfo.GetCultureInfo("es-ES");

            PacienteDTO item = new PacienteDTO()
            {
                NroDocumento   = model.NroDocumento,
                Nombres        = model.Nombre,
                Apellidos      = model.Apellido,
                Sexo           = model.Sexo,
                GrupoSanguineo = model.GrupoSanguineo,
                UserName       = User.Identity.Name
            };

            if (model.Id > 0)
            {
                item.Id = model.Id;
            }

            if (model.CamaId > 0)
            {
                item.CamaId = model.CamaId;
            }

            if (!string.IsNullOrWhiteSpace(model.FechaNacimiento))
            {
                item.FechaNacimiento = DateTime.Parse(model.FechaNacimiento, ci);
            }

            if (!string.IsNullOrWhiteSpace(model.Peso))
            {
                item.Peso = decimal.Parse(model.Peso.Replace(".", ""));
            }

            var paciente = await _fichaPacienteService.AddEditDatosBasicosPacienteAsync(item);

            var contactos = JsonConvert.DeserializeObject <List <ContactoPacienteFormModel> >(model.ContactosJSON);

            var contactos_dto = contactos.Select(c => new ContactoPacienteDTO()
            {
                Id             = c.ContactoId,
                TipoContactoId = c.TipoContactoId,
                NombreContacto = c.NombreContacto,
                NroContacto    = c.NroContacto,
                PacienteId     = paciente.Id.Value,
                UserName       = User.Identity.Name
            });

            await _fichaPacienteService.AddEditContactoPacienteAsync(contactos_dto);

            return(Json(new { Success = true, PacienteId = paciente.Id }));
        }