示例#1
0
        private static void SetFingerprintAction(object sender, DoWorkEventArgs e)
        {
            var parametros = e.Argument as Tuple <string, byte[]>;

            if (parametros != null)
            {
                using (var contexto = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    try
                    {
                        var usuario = contexto.FingerPrintRegister.FirstOrDefault((fp) => (fp.NumeroUnicoDocumento == parametros.Item1));
                        if (usuario == null)
                        {
                            contexto.AddToFingerPrintRegister(new FingerPrintRegister()
                            {
                                FingerPrint = parametros.Item2, NumeroUnicoDocumento = parametros.Item1
                            });
                        }
                        else
                        {
                            usuario.FingerPrint = parametros.Item2;
                        }
                        contexto.SaveChanges();
                    }
                    catch (Exception eee)
                    {
                        e.Cancel = true;
                    }
                }
            }
            else
            {
                throw new ArgumentException("No se Enviaron Los parametros de la Consulta");
            }
        }
示例#2
0
        private static void ProUsuarioRolFuncionAction(object sender, DoWorkEventArgs e)
        {
            var numeroUnicoDocumento = e.Argument as string;

            if (!string.IsNullOrWhiteSpace(numeroUnicoDocumento))
            {
                using (var contexto = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    try
                    {
                        var resul = contexto.PRO_UsuarioRolFuncion(numeroUnicoDocumento, "CapturaManual");
                        if (resul != null)
                        {
                            OscClaims.SetClaims(resul.Where(claim => claim.Aplicacion.ToUpperInvariant() == "OSC").Select(claim => claim.Funcion).ToArray());
                            e.Result = true;
                        }
                        else
                        {
                            e.Result = false;
                        }
                    }
                    catch (Exception)
                    {
                        e.Cancel = true;
                    }
                }
            }
            else
            {
                throw new ArgumentException("No se Enviaron Los parametros de la Consulta");
            }
        }
示例#3
0
 private static void GetGetMunicipiosAction(object sender, DoWorkEventArgs e)
 {
     using (NeuronOscEntitites context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
     {
         List <NeuronCloud.Atpc.Co.Modelos.Municipio> output = context.Municipio.Select(ProxyDBtoModelo.Municipio).ToList();
         e.Result = output;
     }
 }
示例#4
0
 private static void GetFormasDePagoAction(object sender, DoWorkEventArgs e)
 {
     using (NeuronOscEntitites context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
     {
         List <NeuronCloud.Atpc.Co.Modelos.FormaDePago> output = context.CRUD_FormaPagoSelecciona().Select(ProxyDBtoModelo.FormaDePago).ToList();
         e.Result = output;
     }
 }
示例#5
0
 private static void GetAction(object sender, DoWorkEventArgs e)
 {
     using (NeuronOscEntitites context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
     {
         List <NeuronCloud.Atpc.Co.Modelos.TipoIdentificacion> output = context.TipoIdentificacion.Where(ti => ti.RazonSocialCHK.ToUpper() == "NO").Select(ProxyConverters.DbTipoIdentificacionToModel).ToList();
         e.Result = output;
     }
 }
示例#6
0
        private static void GetDiagnoseAutoCompleteAction(object sender, DoWorkEventArgs e)
        {
            var parameters = e.Argument as Tuple <string, PatientInfo>;

            if (parameters != null)
            {
                using (var context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    List <Diagnose> output = context.PRO_DiagnosticoSeleccAutocomplete(parameters.Item1, parameters.Item2.GenderAsString).Select(ProxyConverters.PRO_DiagnosticoSeleccAutocomplete_ResultToDiagnose).ToList();
                    e.Result = output;
                }
            }
        }
示例#7
0
        private static void GetServiceUnitsAction(object sender, DoWorkEventArgs e)
        {
            var parameters = e.Argument as ServiceUnitParameters;

            if (parameters != null)
            {
                using (var context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    List <ServiceUnit> output = context.PRO_ConvenioRemiteServSelecc(parameters.CodigoConvenio, parameters.CodigoRemitente).Select(ProxyConverters.PRO_ConvenioRemiteServSelecc_ResultToServiceUnit).ToList();
                    e.Result = output;
                }
            }
        }
示例#8
0
        private static void GetServiceRequestersAction(object sender, DoWorkEventArgs e)
        {
            var agreement = e.Argument as ServiceAgreement;

            if (agreement != null)
            {
                using (var context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    List <ServiceRequester> output = context.PRO_ConvenioRemitenteSelecc(agreement.Code).Select(ProxyConverters.PRO_ConvenioRemitenteSelecc_ResultToServiceRequester).ToList();
                    e.Result = output;
                }
            }
        }
示例#9
0
        private static void GetServiceAgreementsAction(object sender, DoWorkEventArgs e)
        {
            var patientInfo = e.Argument as PatientInfo;

            if (patientInfo != null)
            {
                using (var context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    List <ServiceAgreement> output = context.PRO_ConvenioSeleccPaciOSC(patientInfo.IdDocument, patientInfo.IdDocumentType, null).Select(ProxyConverters.FromPRO_ConvenioSeleccPaciOSC_ResultToServiceAgreement).ToList();
                    e.Result = output;
                }
            }
        }
示例#10
0
        private static void GetExamenesRecientesAction(object sender, DoWorkEventArgs e)
        {
            var agreement = e.Argument as Tuple <string, string, string>;

            if (agreement != null)
            {
                using (var context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    List <Antecedente> output = context.PRO_ConsultaResultadoPaciente(agreement.Item1, agreement.Item2, agreement.Item3).Select(ProxyConverters.FromPRO_ConsultaResultadoPacienteToAntecedente).ToList();
                    e.Result = output;
                }
            }
        }
示例#11
0
        private static void GetLabelsOSCAction(object sender, DoWorkEventArgs e)
        {
            var parameter = e.Argument as string;

            if (!string.IsNullOrEmpty(parameter))
            {
                using (var context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    List <PRO_PrinterCodeBar_Result> output = context.PRO_PrinterCodeBar(parameter).ToList();
                    e.Result = output;
                }
            }
        }
示例#12
0
        private static void GetBookingSearch(object sender, DoWorkEventArgs e)
        {
            var parameters = e.Argument as Tuple <string, string>;

            if (parameters != null)
            {
                using (var context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    NoCita output = context.PRO_SearchBooking(parameters.Item1, parameters.Item2).FirstOrDefault().ToNoCitaInfo();
                    e.Result = output;
                }
            }
        }
示例#13
0
        private static void GetServiceCodeByNameAction(object sender, DoWorkEventArgs e)
        {
            var parameters = e.Argument as SearchServiceParameters;

            if (parameters != null)
            {
                using (var context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    List <PRO_ConvenioPrestPortafoSeleccAutoComplete_Result> output = context.PRO_ConvenioPrestPortafoSeleccAutoComplete(parameters.ServiceAgreement.Code, parameters.Provider.Code, parameters.ServiceRequester.Code, null, parameters.SearchChars, parameters.GenderAsString).ToList();
                    e.Result = output;
                }
            }
        }
示例#14
0
        private static void GetAction(object sender, DoWorkEventArgs e)
        {
            var parameter = e.Argument as string;

            if (!string.IsNullOrEmpty(parameter))
            {
                using (var context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    PatientInfo output = context.CRUD_TerceroSeleccionaExacto(parameter).FirstOrDefault().ToPatientInfo();
                    e.Result = output;
                }
            }
        }
示例#15
0
        private static void GetTipoPagoAction(object sender, DoWorkEventArgs e)
        {
            string formaDePago = e.Argument as string;

            if (!string.IsNullOrEmpty(formaDePago))
            {
                using (NeuronOscEntitites context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    List <NeuronCloud.Atpc.Co.Modelos.TipoPago> output =
                        context.PRO_FormaPagoMedioPagoSelecciona(formaDePago).Select(ProxyDBtoModelo.TipoPago).ToList();
                    e.Result = output;
                }
            }
        }
示例#16
0
        private static void SavePhoneNumberAction(object sender, DoWorkEventArgs e)
        {
            var parameter = e.Argument as PatientInfo;

            if (parameter != null)
            {
                using (var context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    Tercero output = context.Tercero.FirstOrDefault(tercero => tercero.NumeroUnicoDocumento == parameter.UniqueDocumentId);
                    if (output != null)
                    {
                        output.TelefonoDomicilio = parameter.FullName;
                        e.Result = context.SaveChanges();
                    }
                }
            }
        }
示例#17
0
        private static void GuardarFechaNacimientoAction(object sender, DoWorkEventArgs e)
        {
            var parameter = e.Argument as PatientInfo;

            if (parameter != null)
            {
                using (var context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    Tercero output = context.Tercero.FirstOrDefault(tercero => tercero.NumeroUnicoDocumento == parameter.UniqueDocumentId);
                    if (output != null)
                    {
                        output.FechaNacimiento = parameter.BirthDate;
                        e.Result = context.SaveChanges();
                    }
                }
            }
        }
示例#18
0
        ////private static void GetPersonalAsistencialAction(object sender, DoWorkEventArgs e)
        ////{
        ////    var parameters = e.Argument as string;
        ////    Debug.WriteLine("GetPersonalAsistencialAction Inicio:\t " + DateTime.Now);
        ////    if (!string.IsNullOrWhiteSpace(parameters))
        ////    {
        ////        using (NeuronOscEntitites context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
        ////        {
        ////            List<CRUD_PersonalAsistencialSelecciona_Result> output = context.CRUD_PersonalAsistencialSelecciona(parameters).ToList();
        ////            e.Result = output;
        ////        }
        ////    }

        ////    Debug.WriteLine("GetPersonalAsistencialAction Fin:\t " + DateTime.Now);
        ////}

        private static void GetServiceByCodeAction(object sender, DoWorkEventArgs e)
        {
            var parameters = e.Argument as SearchServiceParameters;

            if (parameters != null)
            {
                using (var context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    List <Service> output      = context.PRO_ConvenioPrestPortafoSelecc(parameters.ServiceAgreement.Code, parameters.Provider.Code, parameters.ServiceRequester.Code, null, parameters.Code, string.Empty, parameters.GenderAsString).Select(ProxyConverters.PRO_ConvenioPrestPortafoSelecc_ResultToService).ToList();
                    Service        mainService = output.FirstOrDefault(servicio => servicio.EsCombo);
                    if (mainService != null)
                    {
                        if (mainService.ComponentesCombo != null)
                        {
                            mainService.ComponentesCombo.Clear();
                            mainService.ComponentesCombo.AddRange(output.Where(servicio => !servicio.EsCombo));
                            if (!(mainService.Price > 0))
                            {
                                mainService.Price = mainService.ComponentesCombo.Sum(servicio => servicio.Price);
                            }

                            foreach (Service service in mainService.ComponentesCombo)
                            {
                                service.ServiceAgreementCode = parameters.ServiceAgreement.Code;
                                service.ProviderCode         = parameters.Provider.Code;
                                service.Level = parameters.ServiceAgreement.Nivel;
                            }
                        }
                    }
                    else
                    {
                        mainService = output.FirstOrDefault();
                    }

                    if (mainService != null)
                    {
                        mainService.ServiceAgreementCode = parameters.ServiceAgreement.Code;
                        mainService.ProviderCode         = parameters.Provider.Code;
                        mainService.Level = parameters.ServiceAgreement.Nivel;
                    }

                    e.Result = mainService;
                }
            }
        }
示例#19
0
        private static void GetLiquidationAction(object sender, DoWorkEventArgs e)
        {
            var parameters = e.Argument as LiquidationParameters;

            if (parameters != null)
            {
                var paciente = parameters.CurrentPatient.OriginalObject as CRUD_TerceroSeleccionaExacto_Result
                               ?? new CRUD_TerceroSeleccionaExacto_Result();

                var detalle = new OscDataModel.OscDfLiquidaDataTable();

                foreach (CRUDEntity <Service> service in parameters.Services)
                {
                    var row = detalle.NewOscDfLiquidaRow();
                    row.Cant         = (decimal)service.BaseEntity.Quantity;
                    row.CodConvenio  = service.BaseEntity.ServiceAgreementCode;
                    row.CodPrestador = service.BaseEntity.ProviderCode;
                    row.CodigoFuente = service.BaseEntity.Code;
                    row.Nivel        = service.BaseEntity.Level;
                    row.VrItem       = (decimal)service.BaseEntity.Price;
                    decimal number;
                    if (Decimal.TryParse(service.BaseEntity.Level, out number))
                    {
                        row.VrAporteComple = decimal.Parse(service.BaseEntity.Level);
                    }

                    detalle.Rows.Add(row);
                }

                using (var context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    var descuento = parameters.ValorDescuento;
                    var ta        = new PRO_OSCDFLiquidaPagoTableAdapter();
                    ta.Connection.ConnectionString = ((System.Data.EntityClient.EntityConnection)context.Connection).StoreConnection.ConnectionString;

                    var nud = string.IsNullOrWhiteSpace(paciente.NumeroUnicoDocumento)
                                  ? string.Empty
                                  : paciente.NumeroUnicoDocumento;
                    var result = ta.GetData(nud, detalle, (decimal)descuento);

                    e.Result = result.ToList();
                }
            }
        }
示例#20
0
        private static void GetLabelsAction(object sender, DoWorkEventArgs e)
        {
            var parameter = e.Argument as string;

            if (!string.IsNullOrEmpty(parameter))
            {
                using (var context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    int idNumMuestra;
                    if (int.TryParse(parameter, out idNumMuestra))
                    {
                        List <PRO_TipoMuestraIdNum_Result> output = context.PRO_TipoMuestraIdNum(idNumMuestra).ToList();
                        e.Result = output;
                    }
                    else
                    {
                        throw new ArgumentException("El Numero de Muestra no es un Entero");
                    }
                }
            }
        }
示例#21
0
        private static void GetPersonalAsistencialAction(object sender, DoWorkEventArgs e)
        {
            using (NeuronOscEntitites context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
            {
                var parametros = e.Argument as Tuple <string, string>;
                if (parametros == null)
                {
                    e.Result = new List <PersonalAsistencial>();
                    return;
                }


                List <PersonalAsistencial> resultado =
                    context.PRO_SenderPersonSelecAutoComplete(parametros.Item1, parametros.Item2).Select(
                        personalAsistencial =>
                        new PersonalAsistencial
                {
                    Codigo         = personalAsistencial.CodPersoAsisten,
                    NombreCompleto = personalAsistencial.NombrePersoAsisten,
                    Profesion      = personalAsistencial.Profesion
                }).ToList();
                e.Result = resultado;
            }
        }
示例#22
0
        private static void SaveOscAction(object sender, DoWorkEventArgs e)
        {
            var parameters = e.Argument as SaveOSCParameters;

            if (Debugger.IsAttached)
            {
                Debugger.Break();
            }

            if (parameters != null)
            {
                var paciente = parameters.CurrentPatient.OriginalObject as CRUD_TerceroSeleccionaExacto_Result
                               ?? new CRUD_TerceroSeleccionaExacto_Result();

                ////var detalle = new DataTable();
                ////detalle.Columns.Add("Cant", typeof(decimal));
                //////// detalle.Columns.Add("CodigoManual");
                ////detalle.Columns.Add("CodigoFuente");
                ////detalle.Columns.Add("VrItem", typeof(decimal));

                var detalleServicios = new OscDataModel.OscDfLiquidaDataTable();

                foreach (CRUDEntity <Service> selectedService in parameters.SelectedServices)
                {
                    ////var row = detalle.NewRow();
                    ////row["VrItem"] = selectedService.BaseEntity.Price;
                    ////row["CodigoFuente"] = selectedService.BaseEntity.Code;
                    //////// row["CodigoManual"] = selectedService.BaseEntity.Plan;
                    ////row["Cant"] = selectedService.BaseEntity.Quantity;
                    ////detalle.Rows.Add(row);

                    var rowServicio = detalleServicios.NewOscDfLiquidaRow();

                    rowServicio.VrItem       = (decimal)selectedService.BaseEntity.Price;
                    rowServicio.CodigoFuente = selectedService.BaseEntity.Code;
                    rowServicio.Cant         = (decimal)selectedService.BaseEntity.Quantity;
                    rowServicio.CodConvenio  = selectedService.BaseEntity.ServiceAgreementCode;
                    rowServicio.CodPrestador = selectedService.BaseEntity.ProviderCode;
                    rowServicio.Nivel        = selectedService.BaseEntity.Level;
                    decimal number;
                    if (Decimal.TryParse(selectedService.BaseEntity.Level, out number))
                    {
                        rowServicio.VrAporteComple = decimal.Parse(selectedService.BaseEntity.Level);
                    }

                    detalleServicios.Rows.Add(rowServicio);
                }

                var detallePagos = new OscDataModel.OSCTipoPagoDataTable();
                foreach (ItemPago pago in parameters.Pagos)
                {
                    var rowPago = detallePagos.NewOSCTipoPagoRow();

                    rowPago.TipoPago    = pago.TipoPago;
                    rowPago.CodConvenio = pago.CodConvenio;
                    rowPago.VrTipoPago  = pago.VrTipoPago;
                    rowPago.NoDocumento = pago.NoDocumento;

                    detallePagos.Rows.Add(rowPago);
                }

                using (var context = new NeuronOscEntitites(NeuronOSCStorage.EntityConnectionString))
                {
                    var command = new SqlCommand
                    {
                        Connection  = new SqlConnection(((System.Data.EntityClient.EntityConnection)context.Connection).StoreConnection.ConnectionString),
                        CommandType = CommandType.StoredProcedure,
                        CommandText = "Caja.PRO_OSCInserta"
                    };

                    //var command = new SqlCommand
                    //{
                    //    Connection = new SqlConnection(((System.Data.EntityClient.EntityConnection)context.Connection).StoreConnection.ConnectionString),
                    //    CommandType = CommandType.StoredProcedure,
                    //    CommandText = "[CAJA].[PRO_OSCWEBInserta]"
                    //};

                    command.Parameters.Add(new SqlParameter("@PrefijoNoOSC", SqlDbType.VarChar)
                    {
                        Value = parameters.OSCPrefix
                    });
                    command.Parameters.Add(new SqlParameter("@Barrio", SqlDbType.VarChar)
                    {
                        Value = string.IsNullOrWhiteSpace(paciente.BarrioResidencia) ? string.Empty : paciente.BarrioResidencia
                    });
                    command.Parameters.Add(new SqlParameter("@CodDiag", SqlDbType.VarChar)
                    {
                        Value = parameters.CurrentDiagnosis.Code
                    });
                    command.Parameters.Add(new SqlParameter("@CodPersoAsisten", SqlDbType.VarChar)
                    {
                        Value = parameters.PersonalAsistencial == null ? string.Empty : parameters.PersonalAsistencial.Codigo
                    });
                    command.Parameters.Add(new SqlParameter("@CodRemitente", SqlDbType.VarChar)
                    {
                        Value = parameters.CurrentServiceRequester.Code
                    });
                    command.Parameters.Add(new SqlParameter("@VrDcto", SqlDbType.Decimal)
                    {
                        Value = string.IsNullOrWhiteSpace(parameters.VrDcto) ? string.Empty : parameters.VrDcto
                    });
                    command.Parameters.Add(new SqlParameter("@DireccionResidencia", SqlDbType.VarChar)
                    {
                        Value = string.IsNullOrWhiteSpace(paciente.DireccionResidencia) ? string.Empty : paciente.DireccionResidencia
                    });
                    command.Parameters.Add(new SqlParameter("@FechaUltimaRegla", SqlDbType.Date)
                    {
                        Value = parameters.FUR ?? default(DateTime)
                    });
                    command.Parameters.Add(new SqlParameter("@Fecha", SqlDbType.Date)
                    {
                        Value = DateTime.Now
                    });
                    command.Parameters.Add(new SqlParameter("@IdSistema", SqlDbType.VarChar)
                    {
                        Value = string.IsNullOrWhiteSpace(parameters.IdSistema) ? string.Empty : parameters.IdSistema
                    });
                    command.Parameters.Add(new SqlParameter("@NumeroAutorizacion", SqlDbType.VarChar)
                    {
                        Value = string.IsNullOrWhiteSpace(parameters.NumeroAutorizacion) ? string.Empty : parameters.NumeroAutorizacion
                    });
                    command.Parameters.Add(new SqlParameter("@NumeroUnicoDocumento", SqlDbType.VarChar)
                    {
                        Value = string.IsNullOrWhiteSpace(paciente.NumeroUnicoDocumento) ? string.Empty : paciente.NumeroUnicoDocumento
                    });
                    command.Parameters.Add(new SqlParameter("@Observaciones", SqlDbType.VarChar)
                    {
                        Value = string.IsNullOrWhiteSpace(parameters.Observaciones) ? string.Empty : parameters.Observaciones
                    });
                    command.Parameters.Add(new SqlParameter("@Telefono", SqlDbType.VarChar)
                    {
                        Value = string.IsNullOrWhiteSpace(paciente.TelefonoResidencia) ? string.Empty : paciente.TelefonoResidencia
                    });
                    command.Parameters.Add(new SqlParameter("@EnviarPDF", SqlDbType.Bit)
                    {
                        Value = parameters.EnviarResultadoPorCorreo
                    });
                    command.Parameters.Add(new SqlParameter("@CorreoElectronico", SqlDbType.VarChar)
                    {
                        Value = string.IsNullOrWhiteSpace(parameters.CorreoElectronico) ? string.Empty : parameters.CorreoElectronico
                    });
                    command.Parameters.Add(new SqlParameter("@IdProgramaAgenda", SqlDbType.VarChar)
                    {
                        Value = parameters.IdProgramaAgenda
                    });
                    command.Parameters.Add(new SqlParameter("@UsuarioRegistro", SqlDbType.VarChar)
                    {
                        Value = ConfiguracionGlobal.IPrincipalActual.Identity.Name
                    });
                    command.Parameters.Add(new SqlParameter("@VrPagar", SqlDbType.Decimal)
                    {
                        Value = parameters.Total
                    });
                    command.Parameters.Add(new SqlParameter("@NoOrdenMedica", SqlDbType.VarChar)
                    {
                        Value = string.IsNullOrWhiteSpace(parameters.NoOrdenMedica) ? string.Empty : parameters.NoOrdenMedica
                    });
                    command.Parameters.Add(new SqlParameter("@AsigNoMuestra", SqlDbType.VarChar)
                    {
                        Value = string.IsNullOrWhiteSpace(parameters.AsigNoMuestra.ToString()) ? string.Empty : parameters.AsigNoMuestra.ToString()
                    });
                    command.Parameters.Add(new SqlParameter("@IdMuestraCentroAsig", SqlDbType.VarChar)
                    {
                        Value = string.IsNullOrWhiteSpace(parameters.NumeroDeMuestraAsignado.NumeroAsignado) ? string.Empty : parameters.NumeroDeMuestraAsignado.NumeroAsignado
                    });
                    command.Parameters.Add(new SqlParameter("@PrefijoCentroToma", SqlDbType.VarChar)
                    {
                        Value = string.IsNullOrWhiteSpace(parameters.NumeroDeMuestraAsignado.CentroDeToma.Prefijo) ? string.Empty : parameters.NumeroDeMuestraAsignado.CentroDeToma.Prefijo
                    });
                    command.Parameters.Add(new SqlParameter("@ServicioUbicacion", SqlDbType.VarChar)
                    {
                        Value = string.IsNullOrWhiteSpace(parameters.ServicioUbicacion) ? string.Empty : parameters.ServicioUbicacion
                    });
                    command.Parameters.Add(new SqlParameter("@Cama", SqlDbType.VarChar)
                    {
                        Value = string.IsNullOrWhiteSpace(parameters.Cama) ? string.Empty : parameters.Cama
                    });
                    command.Parameters.Add(new SqlParameter("@SedeAtencion", SqlDbType.VarChar)
                    {
                        Value = string.IsNullOrWhiteSpace(parameters.Sede) ? string.Empty : parameters.Sede
                    });
                    command.Parameters.Add(new SqlParameter("@NoCita", SqlDbType.VarChar)
                    {
                        Value = string.IsNullOrWhiteSpace(parameters.BookingNumber) ? string.Empty : parameters.BookingNumber
                    });

                    ////command.Parameters.Add(new SqlParameter("@Edad", SqlDbType.VarChar) { Value = paciente.Edad });
                    ////command.Parameters.Add(new SqlParameter("@EdadDias", SqlDbType.Int) { Value = paciente.EdadDias });
                    ////command.Parameters.Add(new SqlParameter("@Genero", SqlDbType.VarChar) { Value = paciente.Genero });
                    ////command.Parameters.Add(new SqlParameter("@EstadoAfiliacion", SqlDbType.VarChar) { Value = parameters.CurrentServiceAgreement.EstadoAfiliacion });
                    ////command.Parameters.Add(new SqlParameter("@Nivel", SqlDbType.VarChar) { Value = parameters.Nivel });
                    ////command.Parameters.Add(new SqlParameter("@NomTarifario", SqlDbType.VarChar) { Value = "Testo" });
                    ////command.Parameters.Add(new SqlParameter("@NomPlanBeneficio", SqlDbType.VarChar) { Value = "Testo" });
                    ////command.Parameters.Add(new SqlParameter("@PrimerApellido", SqlDbType.VarChar) { Value = string.IsNullOrWhiteSpace(paciente.PrimerApellido) ? string.Empty : paciente.PrimerApellido });
                    ////command.Parameters.Add(new SqlParameter("@PrimerNombre", SqlDbType.VarChar) { Value = string.IsNullOrWhiteSpace(paciente.PrimerNombre) ? string.Empty : paciente.PrimerNombre });
                    ////command.Parameters.Add(new SqlParameter("@SegundoApellido", SqlDbType.VarChar) { Value = string.IsNullOrWhiteSpace(paciente.SegundoApellido) ? string.Empty : paciente.SegundoApellido });
                    ////command.Parameters.Add(new SqlParameter("@SegundoNombre", SqlDbType.VarChar) { Value = string.IsNullOrWhiteSpace(paciente.SegundoNombre) ? string.Empty : paciente.SegundoNombre });
                    ////command.Parameters.Add(new SqlParameter("@TipoAutorizacion", SqlDbType.VarChar) { Value = "Testo" });
                    ////command.Parameters.Add(new SqlParameter("@TipoUsuario", SqlDbType.VarChar) { Value = "Testo" });
                    ////command.Parameters.Add(new SqlParameter("@ZonaResidencia", SqlDbType.VarChar) { Value = paciente.Zona });
                    ////command.Parameters.Add(new SqlParameter("@CodConvenio", SqlDbType.VarChar) { Value = parameters.CurrentServiceAgreement.Code });
                    ////command.Parameters.Add(new SqlParameter("@CodMPio", SqlDbType.VarChar) { Value = paciente.CodMpioResidencia });
                    ////command.Parameters.Add(new SqlParameter("@CodPrestador", SqlDbType.VarChar) { Value = parameters.CurrentProvider.Code });

                    command.Parameters.Add(new SqlParameter("@OSCDet", SqlDbType.Structured)
                    {
                        Value = detalleServicios
                    });
                    command.Parameters.Add(new SqlParameter("@OSCTipoPago", SqlDbType.Structured)
                    {
                        Value = detallePagos
                    });

                    // Output Parameters:
                    ////command.Parameters.Add(new SqlParameter("@DocUnicoOSC", SqlDbType.VarChar, 10) { Direction = ParameterDirection.Output });
                    ////command.Parameters.Add(new SqlParameter("@NoMuestra", SqlDbType.VarChar, 50) { Direction = ParameterDirection.Output });

                    command.Parameters.Add(new SqlParameter("@Error", SqlDbType.VarChar, 200)
                    {
                        Direction = ParameterDirection.Output
                    });
                    command.Parameters.Add(new SqlParameter("@Token", SqlDbType.VarChar, 20)
                    {
                        Direction = ParameterDirection.Output
                    });
                    command.Parameters.Add(new SqlParameter("@IdNumMuestra", SqlDbType.Int)
                    {
                        Direction = ParameterDirection.Output
                    });
                    command.Parameters.Add(new SqlParameter("@IdMuestraCentro", SqlDbType.Int)
                    {
                        Direction = ParameterDirection.Output
                    });
                    command.Parameters.Add(new SqlParameter("@MensajeMuestra", SqlDbType.VarChar, 200)
                    {
                        Direction = ParameterDirection.Output
                    });
                    command.Parameters.Add(new SqlParameter("@ListaFactura", SqlDbType.VarChar, -1)
                    {
                        Direction = ParameterDirection.Output
                    });
                    command.Parameters.Add(new SqlParameter("@ListaOSC", SqlDbType.VarChar, -1)
                    {
                        Direction = ParameterDirection.Output
                    });

                    command.Connection.Open();
                    try
                    {
                        command.ExecuteNonQuery();
                    }
                    finally
                    {
                        command.Connection.Close();
                    }

                    //// e.Result = Tuple.Create(
                    //// command.Parameters["@DocUnicoOSC"].Value,
                    //// command.Parameters["@Token"].Value,
                    //// command.Parameters["@NoMuestra"].Value,
                    //// command.Parameters["@IdNumMuestra"].Value,
                    //// command.Parameters["@IdMuestraCentro"].Value);

                    e.Result = new OscInsertaResult
                    {
                        Error           = command.Parameters["@Error"].Value as string,
                        IdMuestraCentro = command.Parameters["@IdMuestraCentro"].Value as int?,
                        IdNumMuestra    = command.Parameters["@IdNumMuestra"].Value as int?,
                        ListaFactura    = command.Parameters["@ListaFactura"].Value as string,
                        ListaOsc        = command.Parameters["@ListaOSC"].Value as string,
                        MensajeMuestra  = command.Parameters["@MensajeMuestra"].Value as string,
                        Token           = command.Parameters["@Token"].Value as string
                    };
                }
            }
        }