/*
Deployment script for BDHIS_WEB

This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
*/

GO
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;

SET NUMERIC_ROUNDABORT OFF;

GO

USE BDHIS_WEB;


GO
/*
The column annio on table [dbo].[LOTE_X_EESS] must be changed from NULL to NOT NULL. If the table contains data, the ALTER script may not work. To avoid this issue, you must add values to this column for all rows or mark it as allowing NULL values, or enable the generation of smart-defaults as a deployment option.

The column mes on table [dbo].[LOTE_X_EESS] must be changed from NULL to NOT NULL. If the table contains data, the ALTER script may not work. To avoid this issue, you must add values to this column for all rows or mark it as allowing NULL values, or enable the generation of smart-defaults as a deployment option.
*/

PRINT N'Dropping LOTE_X_HOJA_LOTE_X_EESS_FK...';


GO
ALTER TABLE [dbo].[LOTE_X_HOJA] DROP CONSTRAINT [LOTE_X_HOJA_LOTE_X_EESS_FK];


GO
PRINT N'Dropping LOTE_X_EESS_PERSONAL_FK...';


GO
ALTER TABLE [dbo].[LOTE_X_EESS] DROP CONSTRAINT [LOTE_X_EESS_PERSONAL_FK];


GO
PRINT N'Dropping PERS_X_EESS_X_USER_FK...';


GO
ALTER TABLE [dbo].[PERS_X_EESS_X_USER] DROP CONSTRAINT [PERS_X_EESS_X_USER_FK];


GO
PRINT N'Dropping PERS_X_EESS_X_USER_SEG_USER_FK...';


GO
ALTER TABLE [dbo].[PERS_X_EESS_X_USER] DROP CONSTRAINT [PERS_X_EESS_X_USER_SEG_USER_FK];


GO
PRINT N'Dropping FK__PRUEBA_LA__id_ci__7834CCDD...';


GO
ALTER TABLE [dbo].[PRUEBA_LAB] DROP CONSTRAINT [FK__PRUEBA_LA__id_ci__7834CCDD];


GO
PRINT N'Dropping PRUEBA_LAB_TIPO_DIAGNOSTICO_FK...';


GO
ALTER TABLE [dbo].[PRUEBA_LAB] DROP CONSTRAINT [PRUEBA_LAB_TIPO_DIAGNOSTICO_FK];


GO
PRINT N'Dropping FK_dbo_TIPO_PRUEBA_LAB_1...';


GO
ALTER TABLE [dbo].[TIPO_PRUEBA_LAB] DROP CONSTRAINT [FK_dbo_TIPO_PRUEBA_LAB_1];


GO
PRINT N'Dropping REQUERIMIENTO_OBS_FK...';


GO
ALTER TABLE [dbo].[REQUERIMIENTO_OBS] DROP CONSTRAINT [REQUERIMIENTO_OBS_FK];


GO
PRINT N'Dropping REQUERIMIENTO_OBS_FK1...';


GO
ALTER TABLE [dbo].[REQUERIMIENTO_OBS] DROP CONSTRAINT [REQUERIMIENTO_OBS_FK1];


GO
PRINT N'Altering [dbo].[HOJA_HIS]...';


GO
ALTER TABLE [dbo].[HOJA_HIS]
    ADD [anio]          INT         NULL,
        [mes]           VARCHAR (2) NULL,
        [cant_registro] INT         NULL;


GO
PRINT N'Starting rebuilding table [dbo].[LOTE_X_EESS]...';


GO
BEGIN TRANSACTION;

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

SET XACT_ABORT ON;

CREATE TABLE [dbo].[tmp_ms_xx_LOTE_X_EESS] (
    [id_lote]            VARCHAR (3) NOT NULL,
    [id_establecimiento] INT         NOT NULL,
    [id_personal]        INT         NULL,
    [annio]              INT         NOT NULL,
    [mes]                VARCHAR (2) NOT NULL,
    [fg_estado_lote]     CHAR (2)    NULL,
    [tot_pag]            INT         NULL,
    [tot_reg]            INT         NULL,
    [fg_estado_local]    INT         NULL,
    [fecha_creacion]     DATETIME    NULL,
    [ult_modificacion]   DATETIME    NULL,
    CONSTRAINT [tmp_ms_xx_constraint_LOTE_X_EESS_PK] PRIMARY KEY CLUSTERED ([id_lote] ASC, [id_establecimiento] ASC, [annio] ASC, [mes] ASC) WITH (FILLFACTOR = 100)
);

IF EXISTS (SELECT TOP 1 1 
           FROM   [dbo].[LOTE_X_EESS])
    BEGIN
        INSERT INTO [dbo].[tmp_ms_xx_LOTE_X_EESS] ([id_lote], [id_establecimiento], [annio], [mes], [id_personal], [fg_estado_lote], [tot_pag], [tot_reg], [fg_estado_local], [fecha_creacion], [ult_modificacion])
        SELECT   [id_lote],
                 [id_establecimiento],
                 [annio],
                 [mes],
                 [id_personal],
                 [fg_estado_lote],
                 [tot_pag],
                 [tot_reg],
                 [fg_estado_local],
                 [fecha_creacion],
                 [ult_modificacion]
        FROM     [dbo].[LOTE_X_EESS]
        ORDER BY [id_lote] ASC, [id_establecimiento] ASC, [annio] ASC, [mes] ASC;
    END

DROP TABLE [dbo].[LOTE_X_EESS];

EXECUTE sp_rename N'[dbo].[tmp_ms_xx_LOTE_X_EESS]', N'LOTE_X_EESS';

EXECUTE sp_rename N'[dbo].[tmp_ms_xx_constraint_LOTE_X_EESS_PK]', N'LOTE_X_EESS_PK', N'OBJECT';

COMMIT TRANSACTION;

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;


GO
PRINT N'Starting rebuilding table [dbo].[PERS_X_EESS_X_USER]...';


GO
BEGIN TRANSACTION;

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

SET XACT_ABORT ON;

CREATE TABLE [dbo].[tmp_ms_xx_PERS_X_EESS_X_USER] (
    [id_personal]    INT      NOT NULL,
    [id_perxeess]    INT      NOT NULL,
    [id_user]        INT      NOT NULL,
    [fg_estado]      INT      NULL,
    [fecha_registro] DATETIME NULL,
    [fecha_baja]     DATETIME NULL,
    PRIMARY KEY CLUSTERED ([id_personal] ASC, [id_perxeess] ASC, [id_user] ASC) WITH (FILLFACTOR = 100)
);

IF EXISTS (SELECT TOP 1 1 
           FROM   [dbo].[PERS_X_EESS_X_USER])
    BEGIN
        INSERT INTO [dbo].[tmp_ms_xx_PERS_X_EESS_X_USER] ([id_personal], [id_perxeess], [id_user], [fg_estado], [fecha_registro], [fecha_baja])
        SELECT   [id_personal],
                 [id_perxeess],
                 [id_user],
                 [fg_estado],
                 [fecha_registro],
                 [fecha_baja]
        FROM     [dbo].[PERS_X_EESS_X_USER]
        ORDER BY [id_personal] ASC, [id_perxeess] ASC, [id_user] ASC;
    END

DROP TABLE [dbo].[PERS_X_EESS_X_USER];

EXECUTE sp_rename N'[dbo].[tmp_ms_xx_PERS_X_EESS_X_USER]', N'PERS_X_EESS_X_USER';

COMMIT TRANSACTION;

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;


GO
PRINT N'Starting rebuilding table [dbo].[PRUEBA_LAB]...';


GO
BEGIN TRANSACTION;

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

SET XACT_ABORT ON;

CREATE TABLE [dbo].[tmp_ms_xx_PRUEBA_LAB] (
    [id_cita]         INT          NOT NULL,
    [id_corr_prueba]  INT          NOT NULL,
    [id_tprueba]      VARCHAR (10) NULL,
    [fecha_solicitud] DATETIME     NULL,
    [fg_prioridad]    VARCHAR (1)  NULL,
    [nro_orden]       VARCHAR (40) NULL,
    [fg_estado]       INT          NULL,
    [id_tipdiag]      VARCHAR (1)  NULL,
    CONSTRAINT [tmp_ms_xx_constraint_PK__PRUEBA_LAB__7740A8A4] PRIMARY KEY CLUSTERED ([id_cita] ASC, [id_corr_prueba] ASC) WITH (FILLFACTOR = 100)
);

IF EXISTS (SELECT TOP 1 1 
           FROM   [dbo].[PRUEBA_LAB])
    BEGIN
        INSERT INTO [dbo].[tmp_ms_xx_PRUEBA_LAB] ([id_cita], [id_corr_prueba], [id_tprueba], [fecha_solicitud], [fg_prioridad], [nro_orden], [fg_estado], [id_tipdiag])
        SELECT   [id_cita],
                 [id_corr_prueba],
                 [id_tprueba],
                 [fecha_solicitud],
                 [fg_prioridad],
                 [nro_orden],
                 [fg_estado],
                 [id_tipdiag]
        FROM     [dbo].[PRUEBA_LAB]
        ORDER BY [id_cita] ASC, [id_corr_prueba] ASC;
    END

DROP TABLE [dbo].[PRUEBA_LAB];

EXECUTE sp_rename N'[dbo].[tmp_ms_xx_PRUEBA_LAB]', N'PRUEBA_LAB';

EXECUTE sp_rename N'[dbo].[tmp_ms_xx_constraint_PK__PRUEBA_LAB__7740A8A4]', N'PK__PRUEBA_LAB__7740A8A4', N'OBJECT';

COMMIT TRANSACTION;

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;


GO
PRINT N'Creating LOTE_X_EESS_PERSONAL_FK...';


GO
ALTER TABLE [dbo].[LOTE_X_EESS] WITH NOCHECK
    ADD CONSTRAINT [LOTE_X_EESS_PERSONAL_FK] FOREIGN KEY ([id_personal]) REFERENCES [dbo].[PERSONAL] ([id_personal]);


GO
PRINT N'Creating REQUERIMIENTO_OBS_FK...';


GO
ALTER TABLE [dbo].[REQUERIMIENTO_OBS] WITH NOCHECK
    ADD CONSTRAINT [REQUERIMIENTO_OBS_FK] FOREIGN KEY ([id_personal_solicita], [id_perxeess_solicita], [id_user_solicita]) REFERENCES [dbo].[PERS_X_EESS_X_USER] ([id_personal], [id_perxeess], [id_user]);


GO
ALTER TABLE [dbo].[REQUERIMIENTO_OBS] NOCHECK CONSTRAINT [REQUERIMIENTO_OBS_FK];


GO
PRINT N'Creating REQUERIMIENTO_OBS_FK1...';


GO
ALTER TABLE [dbo].[REQUERIMIENTO_OBS] WITH NOCHECK
    ADD CONSTRAINT [REQUERIMIENTO_OBS_FK1] FOREIGN KEY ([id_personal_resuelve], [id_perxeess_resuelve], [id_user_resuelve]) REFERENCES [dbo].[PERS_X_EESS_X_USER] ([id_personal], [id_perxeess], [id_user]);


GO
ALTER TABLE [dbo].[REQUERIMIENTO_OBS] NOCHECK CONSTRAINT [REQUERIMIENTO_OBS_FK1];


GO
PRINT N'Creating ALUMNO_PERSONA_FK...';


GO
ALTER TABLE [dbo].[ALUMNO] WITH NOCHECK
    ADD CONSTRAINT [ALUMNO_PERSONA_FK] FOREIGN KEY ([id_alumno]) REFERENCES [dbo].[PERSONA] ([id_persona]);


GO
PRINT N'Creating consultorio_x_upspiso_con_fk1...';


GO
ALTER TABLE [dbo].[CONSULTORIO_X_UPSPISO] WITH NOCHECK
    ADD CONSTRAINT [consultorio_x_upspiso_con_fk1] FOREIGN KEY ([id_consultorio]) REFERENCES [dbo].[CONSULTORIO] ([id_consultorio]);


GO
PRINT N'Creating CONSULTORIO_X_UPSPISO_FK...';


GO
ALTER TABLE [dbo].[CONSULTORIO_X_UPSPISO] WITH NOCHECK
    ADD CONSTRAINT [CONSULTORIO_X_UPSPISO_FK] FOREIGN KEY ([id_ups_piso]) REFERENCES [dbo].[CJ_UPS_PISO] ([id_ups_piso]);


GO
PRINT N'Creating [dbo].[vw_ciexList]...';


GO
CREATE VIEW vw_ciexList
-- =============================================
-- Author     : Rocío Huamán Ramos
-- Description: Obtener lista de citas que no han sido pagadas aún
-- Create date: 10/01/2013

-- Modified by: Rocío Huamán Ramos
-- Date       : 15/01/2015
-- Version    : 
-- Description (Motivo): 

-- Comment    : 83 año, 82 mes, 31 día
-- =============================================

AS
SELECT id_ciex, desc_ciex, id_sexo, min_edad, id_tipedad_max, max_edad, id_tipedad_min,
CASE 
  --Para día
  WHEN (id_tipedad_min=31) THEN min_edad/365
  --Para mes
  WHEN (id_tipedad_min=82) THEN min_edad/12
  --Para annios o nulo
  ELSE min_edad
END edad_min_annios,
CASE 
  --Para día
  WHEN (id_tipedad_max=31) THEN max_edad/365
  --Para mes
  WHEN (id_tipedad_max=82) THEN max_edad/12
  --Para annios o nulo
  ELSE max_edad
END edad_max_annios
FROM CIEX
GO
PRINT N'Creating [dbo].[vw_menu_rol_x_app]...';


GO
CREATE VIEW [dbo].[vw_menu_rol_x_app]
AS
SELECT rol.id_app, mr.id_menu, mr.id_rol
     FROM seg_menuxrol mr INNER JOIN seg_rol rol
    ON mr.id_rol = rol.id_rol
GO
PRINT N'Creating [dbo].[vw_patencion]...';


GO
CREATE VIEW [dbo].[vw_patencion]
AS
--SELECT RANK() OVER (ORDER BY nro_annio, nro_mes, nro_dia) AS rank, * FROM plan_atencion
SELECT RANK() OVER (ORDER BY pa.nro_annio, pa.nro_mes, pa.nro_dia) AS rank, pa.* ,
CASE
WHEN (pa.nro_annio=0 and pa.nro_mes = 0 and pa.nro_dia = 0) THEN 'RECIEN NACIDO'
WHEN (pa.nro_annio<>0 and pa.nro_mes <> 0 and pa.nro_dia <> 0) THEN CONVERT(VARCHAR,pa.nro_annio) +' AÑO(S) '+ CONVERT(VARCHAR,pa.nro_mes) +' MES(ES) '+ CONVERT(VARCHAR,pa.nro_dia)+' DÍA(S)'
WHEN (pa.nro_annio<>0 and pa.nro_mes <> 0 and pa.nro_dia = 0) THEN CONVERT(VARCHAR,pa.nro_annio) +' AÑO(S) '+ CONVERT(VARCHAR,pa.nro_mes)+' MES(ES)'
WHEN (pa.nro_annio<>0 and pa.nro_mes = 0 and pa.nro_dia = 0) THEN CONVERT(VARCHAR,pa.nro_annio)+' AÑO(S)'
WHEN (pa.nro_annio=0 and pa.nro_mes <> 0 and pa.nro_dia <> 0) THEN CONVERT(VARCHAR,pa.nro_mes) +' MES(ES) '+ CONVERT(VARCHAR,pa.nro_dia)+' DÍA(S)'
WHEN (pa.nro_annio=0 and pa.nro_mes <> 0 and pa.nro_dia = 0) THEN CONVERT(VARCHAR,pa.nro_mes)+' MES(ES)'
WHEN (pa.nro_annio=0 and pa.nro_mes = 0 and pa.nro_dia <> 0) THEN CONVERT(VARCHAR,pa.nro_dia)+' DÍA(S)'
END etapa
FROM plan_atencion pa
GO
PRINT N'Altering [dbo].[usp_EXPORTAR_cabeceraGetlist]...';


GO
-- =============================================
-- Author     : Rocío Huamán Ramos
-- Description: Insertar/Modificar Hoja His
-- Create date: 26/05/2015

-- Modified by: Mario garay
-- Date       : 15/03/2016
-- Version    : 
-- Description(Motivo): Se agrego numero de pagina y estado de pagina y se comento relacion con LOTE_X_HOJA
-- Se modifico criterios de busqueda y campos año y mes
-- =============================================
GO
ALTER PROCEDURE [dbo].[usp_EXPORTAR_cabeceraGetlist]
@fechaini VARCHAR(8),
@fechafin VARCHAR(8),
@idpunto INT,
@reproceso BIT
AS
BEGIN
  
  DECLARE @id_disa varchar(2)
    DECLARE @fechaini_ DATETIME,
            --@fechafin varchar(8),
            @fechafin_ DATETIME;
    
    SET @fechaini_ = CAST((@fechaini + ' 00:00:00') AS datetime)
    SET @fechafin_ = CAST((@fechafin + ' 23:59:59') AS datetime)

    DECLARE @lenguaje varchar(20)
    SET @lenguaje=@@language
    IF @@language != 'spanish' SET language spanish

    SET @id_disa = (SELECT id_disa FROM CONFIG_PUNTO_DIGITACION CPD where CPD.id_punto = @idpunto)
  
  IF @reproceso = 1
  BEGIN
    
    SELECT
    dbo.LPAD(CONVERT(VARCHAR,ve.CODUNICO),9,'0') AS cod_unico, 
    CONVERT(VARCHAR,hh.anio) AS annio, 
    dbo.LPAD(hh.mes,2, '0') AS mes,
    vp.cod_personal_ieds, hh.id_ups, vp.num_doc, 
    CONVERT(VARCHAR, hh.fg_estado) AS fg_estado, hh.id_turno,       
    CONVERT(VARCHAR,hh.id_hoja_his) AS id_hoja_his,
    -- CONVERT(VARCHAR, hh.cant_registro) AS count_hoja_det,
    (
      SELECT CONVERT(VARCHAR,count(1))
      FROM HOJA_HIS_CITA
      WHERE id_hoja_his = hh.id_hoja_his
        AND id_establecimiento = hh.id_establecimiento
    ) AS count_hoja_det,
    hh.id_lote as nom_lote, 
    CONVERT(VARCHAR,hh.num_pag) AS num_pag, 
    CONVERT(VARCHAR,hh.his_esta_pag) his_esta_pag,
    CONVERT(VARCHAR,ve.id_establecimiento) id_establecimiento,
    TBL.cod_personal_ieds as cod_personal_ieds_dig
    FROM HOJA_HIS hh
    INNER JOIN vw_establecimiento ve ON ve.id_establecimiento = hh.id_establecimiento
    INNER JOIN vw_personal vp ON vp.id_establecimiento = hh.id_establecimiento AND vp.id_personal = hh.id_personal_atiende
    INNER JOIN (
      SELECT 
      AUX_HHC.id_hoja_his,
      AUX_HHC.id_establecimiento
      FROM HOJA_HIS_CITA AS AUX_HHC 
      INNER JOIN CITA AS AUX_C ON AUX_HHC.id_cita = AUX_C.id_cita
      WHERE AUX_C.fech_ing  BETWEEN @fechaini_ AND @fechafin_
      AND AUX_HHC.fg_estado = 1
      GROUP BY AUX_HHC.id_hoja_his, AUX_HHC.id_establecimiento        
    ) AS TBL_CITA ON TBL_CITA.id_hoja_his = hh.id_hoja_his AND TBL_CITA.id_establecimiento = hh.id_establecimiento
    LEFT JOIN (
      SELECT DISTINCT id_personal, cod_personal_ieds FROM vw_personal 
      WHERE id_disa = @id_disa
    ) TBL on TBL.id_personal = hh.id_personal_digita
    WHERE (hh.cant_registro IS NOT NULL AND hh.cant_registro > 0)
    AND (@idpunto IS NULL OR hh.id_punto = @idpunto)
    AND hh.fg_estado = 1
    ORDER BY ve.CODUNICO, hh.anio, hh.mes, hh.id_lote, hh.num_pag 

    END
  ELSE
  BEGIN

    SELECT
    dbo.LPAD(CONVERT(VARCHAR,ve.CODUNICO),9,'0') AS cod_unico, 
    CONVERT(VARCHAR,hh.anio) AS annio, 
    dbo.LPAD(hh.mes,2, '0') AS mes,
    vp.cod_personal_ieds, hh.id_ups, vp.num_doc, 
    CONVERT(VARCHAR, hh.fg_estado) AS fg_estado, hh.id_turno, 
    CONVERT(VARCHAR,hh.id_hoja_his) AS id_hoja_his,
    -- CONVERT(VARCHAR, hh.cant_registro) AS count_hoja_det,
    (
      SELECT CONVERT(VARCHAR,count(1))
      FROM HOJA_HIS_CITA
      WHERE id_hoja_his = hh.id_hoja_his
        AND id_establecimiento = hh.id_establecimiento
    ) AS count_hoja_det,
    hh.id_lote as nom_lote,
    CONVERT(VARCHAR,hh.num_pag) AS num_pag, 
    CONVERT(VARCHAR,hh.his_esta_pag) his_esta_pag,
    CONVERT(VARCHAR,ve.id_establecimiento) id_establecimiento,
    TBL.cod_personal_ieds as cod_personal_ieds_dig
    FROM HOJA_HIS hh
    INNER JOIN vw_establecimiento ve ON ve.id_establecimiento = hh.id_establecimiento
    INNER JOIN vw_personal vp ON vp.id_establecimiento = hh.id_establecimiento AND vp.id_personal = hh.id_personal_atiende
    INNER JOIN (
        SELECT
        AUX_HHC.id_hoja_his,
        AUX_HHC.id_establecimiento
        FROM HOJA_HIS_CITA AS AUX_HHC 
        INNER JOIN CITA AS AUX_C ON AUX_HHC.id_cita = AUX_C.id_cita
        WHERE AUX_C.fech_ing  BETWEEN @fechaini_ AND @fechafin_
        AND AUX_HHC.fg_estado = 1
        GROUP BY AUX_HHC.id_hoja_his, AUX_HHC.id_establecimiento  
              
    ) AS TBL_CITA ON TBL_CITA.id_hoja_his = hh.id_hoja_his AND TBL_CITA.id_establecimiento = hh.id_establecimiento
    LEFT JOIN (
      SELECT DISTINCT id_personal, cod_personal_ieds FROM vw_personal 
      WHERE id_disa = @id_disa
    ) TBL on TBL.id_personal = hh.id_personal_digita
    WHERE (hh.cant_registro IS NOT NULL AND hh.cant_registro > 0)
    AND (hh.his_esta_pag = 1 OR hh.his_esta_pag = 3)
    AND (@idpunto IS NULL OR hh.id_punto = @idpunto)
    AND hh.fg_estado = 1
    ORDER BY ve.CODUNICO, hh.anio, hh.mes, hh.id_lote, hh.num_pag

  END

  SET language @lenguaje

END
GO
PRINT N'Altering [dbo].[usp_EXPORTAR_detalleGetlist]...';


GO
-- =============================================
-- Author     : Rocío Huamán Ramos
-- Description: Insertar/Modificar Hoja His
-- Create date: 26/05/2015

-- Modified by: Mario garay
-- Date       : 15/03/2016
-- Version    : 
-- Description(Motivo): Se agrego numero de pagina y estado de pagina y se comento relacion con LOTE_X_HOJA, se agrego
-- annio_edad, mes_edad, dia_edad
-- =============================================
GO
ALTER PROCEDURE [dbo].[usp_EXPORTAR_detalleGetlist]
@fechaini VARCHAR(8),
@fechafin VARCHAR(8),
@idpunto INT,
@reproceso BIT
AS
BEGIN
    
  DECLARE @fechaini_ DATETIME,
        @fechafin_ DATETIME;

    SET @fechaini_ = CAST((@fechaini + ' 00:00:00') AS datetime)
    SET @fechafin_ = CAST((@fechafin + ' 23:59:59') AS datetime)

    DECLARE @lenguaje varchar(20)
    SET @lenguaje=@@language
    IF @@language != 'spanish' SET language spanish

  IF @reproceso = 1
  BEGIN
    
    SELECT 
    dbo.LPAD(CONVERT(VARCHAR,ve.CODUNICO), 9, '0') AS cod_unico, 
    CONVERT(VARCHAR,hh.anio) AS annio, 
    CONVERT(VARCHAR,hh.mes) AS mes,
    CONVERT(VARCHAR,DAY(c.fech_ing)) AS dia, 
    CASE 
    WHEN (ac.id_actividad_his IS NOT NULL) THEN ac.id_actividad_his 
    WHEN (ac.id_actividad_his IS NULL AND vpac.nro_his IS NOT NULL) THEN vpac.nro_his 
    ELSE vpac.nro_his_familiar 
    END AS nro_his_familiar,
    CASE WHEN (ac.id_actividad_his IS NOT NULL)
    THEN SUBSTRING(ac.id_ubigeo, 1, 2)
    ELSE SUBSTRING(uir.IdUbigeoInei, 1, 2)
    END AS cod_dpto,
    CASE WHEN (ac.id_actividad_his IS NOT NULL)
    THEN SUBSTRING(ac.id_ubigeo, 3, 2)
    ELSE SUBSTRING(uir.IdUbigeoInei, 3, 2)
    END AS cod_prov,
    CASE WHEN (ac.id_actividad_his IS NOT NULL)
    THEN SUBSTRING(ac.id_ubigeo, 5, 2)
    ELSE SUBSTRING(uir.IdUbigeoInei, 5, 2)
    END AS cod_dist,
    CONVERT(VARCHAR,ISNULL(c.edad_reg, 0)) edad_reg,
    c.id_tipedad_reg, vpac.id_genero,
    c.id_tipcond_estab,
    c.id_tipcond_serv,
    CONVERT(VARCHAR,c.id_cita) AS id_cita,
    hh.id_turno,
    vpac.id_pais + CONVERT(VARCHAR,vpac.id_tipo_doc) + vpac.num_doc AS dni, 
    c.id_financiador,
    vpac.id_etnia,
    CONVERT(VARCHAR,hh.fg_estado) AS fg_estado, 
    CONVERT(VARCHAR,hh.id_hoja_his) AS id_hoja_his,
    CONVERT(VARCHAR,ISNULL(hh.num_pag, 1)) AS num_pag,
    hh.id_lote, CONVERT(VARCHAR, hc.id_corr) AS num_reg,
    CONVERT(VARCHAR,hc.fg_estado) AS fg_estado_reg, 
    CONVERT(VARCHAR,hc.his_esta_reg) AS his_esta_reg,
    CONVERT(VARCHAR,ve.id_establecimiento) AS id_establecimiento,
    CONVERT(VARCHAR,c.annio_edad) AS annio_edad, 
    CONVERT(VARCHAR,c.mes_edad) AS mes_edad, 
    CONVERT(VARCHAR,c.dia_edad) AS dia_edad
    FROM HOJA_HIS_CITA hc
    INNER JOIN CITA c ON c.id_cita = hc.id_cita AND c.id_establecimiento = hc.id_establecimiento
    INNER JOIN HOJA_HIS hh ON hh.id_hoja_his = hc.id_hoja_his AND hh.id_establecimiento = hc.id_establecimiento
    INNER JOIN vw_establecimiento ve ON ve.id_establecimiento = hc.id_establecimiento
    LEFT JOIN vw_paciente vpac ON vpac.id_paciente = c.id_paciente AND vpac.id_establecimiento = hc.id_establecimiento
    LEFT JOIN UBIGEO_INEI_RENIEC uir ON uir.IdUbigeoReniec = vpac.id_ubigeo_res_new
    LEFT JOIN ACTIVIDAD_HIS_CITA ac ON ac.id_cita = c.id_cita and ac.id_establecimiento = c.id_establecimiento
    -- LEFT JOIN LOTE_X_HOJA lh ON lh.id_hoja_his = hc.id_hoja_his AND lh.id_establecimiento = hc.id_establecimiento
    WHERE c.fech_ing BETWEEN @fechaini_ AND @fechafin_
    AND (@idpunto IS NULL OR hh.id_punto = @idpunto)
    AND hc.fg_estado = 1
    ORDER BY ve.CODUNICO, hh.anio, hh.mes, hh.id_lote, hh.num_pag, hc.id_corr

  END
  ELSE
  BEGIN
    
    SELECT
    dbo.LPAD(CONVERT(VARCHAR,ve.CODUNICO), 9, '0') AS cod_unico, 
    CONVERT(VARCHAR,hh.anio) AS annio, 
    CONVERT(VARCHAR,hh.mes) AS mes,
    CONVERT(VARCHAR,DAY(c.fech_ing)) AS dia, 
    CASE 
    WHEN (ac.id_actividad_his IS NOT NULL) THEN ac.id_actividad_his 
    WHEN (ac.id_actividad_his IS NULL AND vpac.nro_his IS NOT NULL) THEN vpac.nro_his 
    ELSE vpac.nro_his_familiar 
    END AS nro_his_familiar, 
    CASE 
    WHEN (ac.id_actividad_his IS NOT NULL) THEN SUBSTRING(ac.id_ubigeo, 1, 2)
    ELSE SUBSTRING(uir.IdUbigeoInei, 1, 2)
    END AS cod_dpto,
    CASE 
    WHEN (ac.id_actividad_his IS NOT NULL) THEN SUBSTRING(ac.id_ubigeo, 3, 2)
    ELSE SUBSTRING(uir.IdUbigeoInei, 3, 2)
    END AS cod_prov,
    CASE WHEN (ac.id_actividad_his IS NOT NULL) THEN SUBSTRING(ac.id_ubigeo, 5, 2)
    ELSE SUBSTRING(uir.IdUbigeoInei, 5, 2)
    END AS cod_dist,        
    CONVERT(VARCHAR, ISNULL(c.edad_reg, 0)) edad_reg,
    c.id_tipedad_reg,
    vpac.id_genero,
    c.id_tipcond_estab,
    c.id_tipcond_serv,
    CONVERT(VARCHAR,c.id_cita) AS id_cita,
    hh.id_turno,
    vpac.id_pais + CONVERT(VARCHAR,vpac.id_tipo_doc) + vpac.num_doc AS dni, 
    c.id_financiador,
    vpac.id_etnia,
    CONVERT(VARCHAR,hh.fg_estado) AS fg_estado, 
    CONVERT(VARCHAR,hh.id_hoja_his) AS id_hoja_his,
    CONVERT(VARCHAR,ISNULL(hh.num_pag, 1)) AS num_pag,
    hh.id_lote, CONVERT(VARCHAR,hc.id_corr) AS num_reg,
    CONVERT(VARCHAR,hc.fg_estado) AS fg_estado_reg, 
    CONVERT(VARCHAR,hc.his_esta_reg) AS his_esta_reg,
    CONVERT(VARCHAR,ve.id_establecimiento) AS id_establecimiento,
    CONVERT(VARCHAR,c.annio_edad) AS annio_edad, 
    CONVERT(VARCHAR,c.mes_edad) AS mes_edad, 
    CONVERT(VARCHAR,c.dia_edad) AS dia_edad
    FROM HOJA_HIS_CITA hc
    INNER JOIN CITA c ON c.id_cita = hc.id_cita AND c.id_establecimiento = hc.id_establecimiento
    INNER JOIN HOJA_HIS hh ON hh.id_hoja_his = hc.id_hoja_his AND hh.id_establecimiento = hc.id_establecimiento
    INNER JOIN vw_establecimiento ve ON ve.id_establecimiento = hc.id_establecimiento
    LEFT JOIN vw_paciente vpac ON vpac.id_paciente = c.id_paciente AND vpac.id_establecimiento = hc.id_establecimiento
    LEFT JOIN UBIGEO_INEI_RENIEC uir ON uir.IdUbigeoReniec = vpac.id_ubigeo_res_new
    LEFT JOIN ACTIVIDAD_HIS_CITA ac ON ac.id_cita = c.id_cita and ac.id_establecimiento = c.id_establecimiento
    -- LEFT JOIN LOTE_X_HOJA lh ON lh.id_hoja_his = hc.id_hoja_his AND lh.id_establecimiento = hc.id_establecimiento
    WHERE c.fech_ing BETWEEN @fechaini_ AND @fechafin_
    AND (hc.his_esta_reg = 1 OR hc.his_esta_reg = 3)
    AND (@idpunto IS NULL OR hh.id_punto = @idpunto)
    AND hc.fg_estado = 1
    ORDER BY ve.CODUNICO, hh.anio, hh.mes, hh.id_lote, hh.num_pag, hc.id_corr

  END
    set language @lenguaje

END
GO

PRINT N'Altering [dbo].[usp_CITA_CitaDigitadorGetList]...';


GO
--------------------------------------
ALTER PROCEDURE [dbo].[usp_CITA_CitaDigitadorGetList]
(
@idestablecimiento int,
@anio int,
@mes int,
@idturno VARCHAR(1),
@nrohojahis VARCHAR(15),
@nrolote VARCHAR(3),
@param VARCHAR(350),
@start int, 
@limit int, 
@cant int OUTPUT, 
@idflag varchar(2))
AS BEGIN
  DECLARE @cantnum INT,
          @idups VARCHAR(6),
          @descups VARCHAR(350),
          @start_ int,
          @limit_ int
  
  IF(ISNULL(@param,'0') <> '0')
  BEGIN
    SET @cantnum = (SELECT CASE
              WHEN (CHARINDEX('0',@param)>=1) THEN 1
              WHEN (CHARINDEX('1',@param)>=1) THEN 1
              WHEN (CHARINDEX('2',@param)>=1) THEN 1
              WHEN (CHARINDEX('3',@param)>=1) THEN 1
              WHEN (CHARINDEX('4',@param)>=1) THEN 1
              WHEN (CHARINDEX('5',@param)>=1) THEN 1
              WHEN (CHARINDEX('6',@param)>=1) THEN 1
              WHEN (CHARINDEX('7',@param)>=1) THEN 1
              WHEN (CHARINDEX('8',@param)>=1) THEN 1
              WHEN (CHARINDEX('9',@param)>=1) THEN 1
            END) 
            
    IF(@cantnum>=1)
    BEGIN
      SET @idups = @param
    END
    ELSE
    BEGIN
      SET @descups = @param
    END
  END
  
  IF(@idflag = 'CP')
  BEGIN
  
    SET @start_ = @start + 1;
    SET @limit_ = @start + @limit;
    
    SELECT t1.id_hoja_his, t1.id_establecimiento, t1.nro_hoja_his, t1.fecha_atencion, t1.id_personal_atiende, t1.nomb_comp_per, t1.id_ups, t1.desc_ups,
    t1.id_turno, t1.desc_turno, t1.id_personal_digita, t1.id_user_digita, t1.id_punto, t1.id_corr, t1.id_cita, t1.nom_comp_pac, t1.doc_per,
    t1.nro_his, t1.grupo, t1.id_actividad_his, t1.id_lote, t1.num_pag, t1.dia
    FROM (
      SELECT row_number() OVER (ORDER BY hh.id_hoja_his) AS rownumber,
      hh.id_hoja_his, hh.id_establecimiento, hh.nro_hoja_his, CONVERT(VARCHAR,hh.fecha_atencion,103) AS fecha_atencion, 
      hh.id_personal_atiende, vp.nomb_comp_per, hh.id_ups, vu.desc_ups,
      hh.id_turno, UPPER(t.desc_tur) AS desc_turno, hh.id_personal_digita, hh.id_user_digita, hh.id_punto,
      hc.id_corr, hc.id_cita, 
      CASE WHEN (vpac.id_paciente IS NOT NULL) 
        THEN vpac.nom_comp_pac 
        ELSE ach.desc_actividad 
      END
      AS nom_comp_pac, 
      CASE WHEN (vpac.id_paciente IS NOT NULL) 
        THEN vpac.doc_per 
        ELSE 'APP'
      END
      AS doc_per, 
      CASE WHEN (vpac.id_paciente IS NOT NULL) 
        THEN vpac.nro_his 
        ELSE ach.id_actividad_his 
      END
      AS nro_his,
      /*'Lote&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: '+ hh.id_lote +
      '<br />Nro. Hoja&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: '+CONVERT(VARCHAR,nro_hoja_his) collate Modern_Spanish_CI_AS+
      '<br />Mes/Año&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: '+ CONVERT(VARCHAR,MONTH(hh.fecha_atencion))+'/'+ CONVERT(VARCHAR,YEAR(hh.fecha_atencion)) --CONVERT(VARCHAR,hh.fecha_atencion,103)
      +'<br/>Turno&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: '+UPPER(t.desc_tur)
      +'<br />Servicio (UPS)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: '+vu.id_ups+' - '+vu.desc_ups
      +'<br />Profesional&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: '+vp.nomb_comp_per*/
      '' AS grupo, ac.id_actividad_his, hh.id_lote, hh.num_pag, DAY(c.fech_ing) as dia
      FROM HOJA_HIS hh
      INNER JOIN HOJA_HIS_CITA hc ON (hc.id_hoja_his = hh.id_hoja_his AND hc.id_establecimiento = hh.id_establecimiento)
      INNER JOIN CITA c ON c.id_cita = hc.id_cita AND (hh.id_establecimiento = c.id_establecimiento)
      LEFT JOIN vw_paciente vpac ON (vpac.id_paciente = c.id_paciente AND vpac.id_establecimiento = c.id_establecimiento)
      LEFT JOIN ACTIVIDAD_HIS_CITA ac ON ac.id_cita = c.id_cita AND ac.id_establecimiento = @idestablecimiento
      LEFT JOIN ACTIVIDAD_HIS ach ON ach.id_actividad_his = ac.id_actividad_his
      --LEFT JOIN vw_ups vu ON vu.id_ups = c.id_ups
      LEFT JOIN UPS vu ON vu.id_ups = c.id_ups
      
      LEFT JOIN vw_personal vp ON (vp.id_establecimiento = hh.id_establecimiento AND vp.id_personal = hh.id_personal_atiende)
      LEFT JOIN TURNO t ON t.id_turno = hh.id_turno
      
      WHERE hh.id_establecimiento = @idestablecimiento --6077
      --AND (@mes IS NULL OR MONTH(hh.fecha_atencion) = @mes)
      --AND (@anio IS NULL OR YEAR(hh.fecha_atencion) = @anio)
      AND (@mes IS NULL OR hh.mes = @mes)
      AND (@anio IS NULL OR hh.anio = @anio)
      AND (@idturno IS NULL OR hh.id_turno = @idturno)
      AND (@nrohojahis IS NULL OR hh.nro_hoja_his = @nrohojahis)
      AND (@nrolote IS NULL OR hh.id_lote = @nrolote)
      AND (@idups IS NULL OR hh.id_ups = @idups)
      AND (@descups IS NULL OR vu.desc_ups LIKE '%' + @descups + '%')
      AND hc.fg_estado = 1
      --ORDER BY hh.id_hoja_his
    ) AS t1 
    WHERE rownumber BETWEEN @start_ AND @limit_
    --ORDER BY t1.num_pag --t1.id_hoja_his
    ORDER BY t1.dia, t1.id_corr

    SET @cant = ( SELECT COUNT(1)
                  FROM HOJA_HIS hh
                  INNER JOIN HOJA_HIS_CITA hc ON (hc.id_hoja_his = hh.id_hoja_his AND hc.id_establecimiento = hh.id_establecimiento)
                  INNER JOIN CITA c ON c.id_cita = hc.id_cita AND (hh.id_establecimiento = c.id_establecimiento)
                  LEFT JOIN vw_paciente vpac ON (vpac.id_paciente = c.id_paciente AND vpac.id_establecimiento = c.id_establecimiento)
                  LEFT JOIN ACTIVIDAD_HIS_CITA ac ON ac.id_cita = c.id_cita AND ac.id_establecimiento = @idestablecimiento
                  LEFT JOIN ACTIVIDAD_HIS ach ON ach.id_actividad_his = ac.id_actividad_his
                  --LEFT JOIN vw_ups vu ON vu.id_ups = c.id_ups
                  LEFT JOIN UPS vu ON vu.id_ups = c.id_ups
                  
                  LEFT JOIN vw_personal vp ON (vp.id_establecimiento = hh.id_establecimiento AND vp.id_personal = hh.id_personal_atiende)
                  LEFT JOIN TURNO t ON t.id_turno = hh.id_turno
                  
                  WHERE hh.id_establecimiento = @idestablecimiento --6077
                  --AND (@mes IS NULL OR MONTH(hh.fecha_atencion) = @mes)
                  --AND (@anio IS NULL OR YEAR(hh.fecha_atencion) = @anio)
                  AND (@mes IS NULL OR hh.mes = @mes)
                  AND (@anio IS NULL OR hh.anio = @anio)
                  AND (@idturno IS NULL OR hh.id_turno = @idturno)
                  AND (@nrohojahis IS NULL OR hh.nro_hoja_his = @nrohojahis)
                  AND (@nrolote IS NULL OR hh.id_lote = @nrolote)
                  AND (@idups IS NULL OR hh.id_ups = @idups)
                  AND (@descups IS NULL OR vu.desc_ups LIKE '%' + @descups + '%')
                  AND hc.fg_estado = 1
                );
  END
  ELSE
  BEGIN
      SELECT hh.id_hoja_his, hh.id_establecimiento, hh.nro_hoja_his, CONVERT(VARCHAR,hh.fecha_atencion,103) AS fecha_atencion, 
      hh.id_personal_atiende, vp.nomb_comp_per, hh.id_ups, vu.desc_ups,
      hh.id_turno, UPPER(t.desc_tur) AS desc_turno, hh.id_personal_digita, hh.id_user_digita, hh.id_punto,
      hc.id_corr, hc.id_cita, 
      CASE WHEN (vpac.id_paciente IS NOT NULL) 
        THEN vpac.nom_comp_pac 
        ELSE ach.desc_actividad 
      END
      AS nom_comp_pac, 
      CASE WHEN (vpac.id_paciente IS NOT NULL) 
        THEN vpac.doc_per 
        ELSE 'APP'
      END
      AS doc_per, 
      CASE WHEN (vpac.id_paciente IS NOT NULL) 
        THEN vpac.nro_his 
        ELSE ach.id_actividad_his 
      END
      AS nro_his,
      'Lote&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: '+ hh.id_lote +
      '<br />Nro. Hoja&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: '+CONVERT(VARCHAR,nro_hoja_his) collate Modern_Spanish_CI_AS+
      '<br />Fecha&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: '+CONVERT(VARCHAR,hh.fecha_atencion,103)
      +'<br/>Turno&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: '+UPPER(t.desc_tur)
      +'<br />Servicio (UPS)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: '+vu.id_ups+' - '+vu.desc_ups
      +'<br />Profesional&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: '+vp.nomb_comp_per
      AS grupo, ac.id_actividad_his, hh.id_lote, hh.num_pag, DAY(c.fech_ing) as dia 
      FROM HOJA_HIS hh
      INNER JOIN HOJA_HIS_CITA hc ON (hc.id_hoja_his = hh.id_hoja_his AND hc.id_establecimiento = hh.id_establecimiento)
      INNER JOIN CITA c ON c.id_cita = hc.id_cita AND (hh.id_establecimiento = c.id_establecimiento)
      LEFT JOIN vw_paciente vpac ON (vpac.id_paciente = c.id_paciente AND vpac.id_establecimiento = c.id_establecimiento)
      LEFT JOIN ACTIVIDAD_HIS_CITA ac ON ac.id_cita = c.id_cita AND ac.id_establecimiento = @idestablecimiento
      LEFT JOIN ACTIVIDAD_HIS ach ON ach.id_actividad_his = ac.id_actividad_his
      --LEFT JOIN vw_ups vu ON vu.id_ups = c.id_ups
      LEFT JOIN UPS vu ON vu.id_ups = c.id_ups
      INNER JOIN vw_personal vp ON (vp.id_establecimiento = hh.id_establecimiento AND vp.id_personal = hh.id_personal_atiende)
      INNER JOIN TURNO t ON t.id_turno = hh.id_turno
      WHERE hh.id_establecimiento = @idestablecimiento --6077
      --AND (@mes IS NULL OR MONTH(hh.fecha_atencion) = @mes)
      --AND (@anio IS NULL OR YEAR(hh.fecha_atencion) = @anio)
      AND (@mes IS NULL OR MONTH(hh.mes) = @mes)
      AND (@anio IS NULL OR YEAR(hh.anio) = @anio)
      AND (@idturno IS NULL OR hh.id_turno = @idturno)
      AND (@nrohojahis IS NULL OR hh.nro_hoja_his = @nrohojahis)
      AND (@nrolote IS NULL OR hh.id_lote = @nrolote)
      AND (@idups IS NULL OR hh.id_ups = @idups)
      AND (@descups IS NULL OR vu.desc_ups LIKE '%' + @descups + '%')
      AND hc.fg_estado = 1
      ORDER BY hh.num_pag --hh.id_hoja_his 
  END
END
GO
PRINT N'Altering [dbo].[usp_HIS_hojaHisCabeceraGetlist]...';


GO
-----------------------------------------
ALTER PROCEDURE [dbo].[usp_HIS_hojaHisCabeceraGetlist]
@idestablecimiento INT,
@fechaatencion VARCHAR(8),
@nrohojahis VARCHAR(15),
@idanio INT,
@idmes VARCHAR(2),
@idturno VARCHAR(1),
@nrolote VARCHAR(3),
@p_ups varchar(30)
AS BEGIN

  DECLARE @fechaatencion_ VARCHAR(8)
  SET @fechaatencion_ = @fechaatencion

  DECLARE @lenguaje varchar(20)
  SET @lenguaje=@@language
  IF @@language != 'spanish' SET language spanish

  SELECT hojh.id_establecimiento, hojh.id_hoja_his, hojh.nro_hoja_his, CONVERT(VARCHAR,hojh.fecha_atencion,103) AS fecha_atencion,
  UPPER(t.desc_tur) AS desc_tur, vper.nomb_comp_per, vu.id_ups + ' - ' + vu.desc_ups AS desc_ups,
  /*( SELECT COUNT(1)
    FROM HOJA_HIS hh
    INNER JOIN HOJA_HIS_CITA hc ON (hc.id_hoja_his = hh.id_hoja_his 
    AND hc.id_establecimiento = hh.id_establecimiento)
    INNER JOIN CITA c ON c.id_cita = hc.id_cita AND (hh.id_establecimiento = c.id_establecimiento)
    LEFT JOIN ACTIVIDAD_HIS_CITA ac ON ac.id_cita = c.id_cita AND ac.id_establecimiento = hojh.id_establecimiento
    LEFT JOIN ACTIVIDAD_HIS ach ON ach.id_actividad_his = ac.id_actividad_his
    WHERE hh.id_establecimiento = hojh.id_establecimiento
    AND hh.id_hoja_his = hojh.id_hoja_his
  )*/ hojh.cant_registro AS cant_registro, hojh.id_lote, hojh.anio, hojh.mes, ms.desc_mes, hojh.id_ups, hojh.id_turno, vper.id_personal, vper.id_tipo_doc, vper.num_doc, vper.id_persona, vper.id_perxeess,
  hojh.num_pag, desc_tipo_doc, hojh.fecha_registro
  FROM HOJA_HIS hojh
  LEFT JOIN TURNO t ON t.id_turno = hojh.id_turno
  INNER JOIN vw_personal vper ON (vper.id_personal = hojh.id_personal_atiende
  AND vper.id_establecimiento = @idestablecimiento) --377
  INNER JOIN UPS vu ON vu.id_ups = hojh.id_ups
  INNER JOIN MES ms ON ms.id_mes = hojh.mes
  WHERE hojh.id_establecimiento = @idestablecimiento --377
  AND (@fechaatencion_ IS NULL OR hojh.fecha_atencion = @fechaatencion_)
  AND (@nrohojahis IS NULL OR hojh.nro_hoja_his = @nrohojahis)
  AND (@idanio IS NULL OR hojh.anio = @idanio)
  AND (@idmes IS NULL OR hojh.mes = @idmes)
  AND (@idturno IS NULL OR hojh.id_turno = @idturno)
  AND (@nrolote IS NULL OR hojh.id_lote = @nrolote)
  AND (vu.desc_ups LIKE ISNULL(@p_ups, '') + '%')
  AND hojh.fg_estado = 1
  ORDER BY hojh.anio, hojh.mes, hojh.nro_hoja_his
  
END
GO
PRINT N'Altering [dbo].[usp_HIS_hojaHisDelete]...';


GO
-- =============================================
-- Author     : Rocío Huamán Ramos
-- Description: Eliminar Registro de Hoja His
-- Create date: 04/08/2015

-- Modified by: Mario Garay
-- Date       : 12/02/2016
-- Version    : 
-- Description (Motivo): Inlcuir en la eliminacion la tablas offline
-- =============================================
ALTER PROCEDURE [dbo].[usp_HIS_hojaHisDelete]
@idhojahis INT,
@idestablecimiento INT,
@idcorr INT,
@idcita INT,
@idactividadhis VARCHAR(6),
@idtipo VARCHAR(1), -- 'D': Borrar detalle, 'C'; Borrar cabecera
@sMen VARCHAR(300) OUTPUT
AS BEGIN

BEGIN TRY
  BEGIN TRAN

  DECLARE @lenguaje varchar(20);
  SET @lenguaje=@@language
  IF @@language != 'spanish' SET language spanish

  DECLARE @eliminarDatos bit;

  SET @eliminarDatos = 1;

  IF(@idtipo = 'C')
  BEGIN
    IF EXISTS(SELECT 1 FROM HOJA_HIS_ENVIO_DETALLE WHERE id_hoja_his = @idhojahis AND id_establecimiento = @idestablecimiento)
    BEGIN
      SET @sMen = 'No se puede eliminar hoja, ya ha sido consolidada';
      SET @eliminarDatos = 0
    END
  END
  ELSE
  BEGIN
    IF EXISTS(  SELECT 1 FROM HOJA_HIS_ENVIO_CITA 
          WHERE id_hoja_his = @idhojahis
          AND id_establecimiento = @idestablecimiento
          AND id_corr = @idcorr)
    BEGIN
      SET @sMen = 'No se puede eliminar cita, ya ha sido consolidada';
      SET @eliminarDatos = 0
    END
  END

  IF @eliminarDatos = 1
  BEGIN
    IF(@idtipo = 'C')
    BEGIN
      
      --UPDATE HOJA_HIS SET fg_estado = 0
      --WHERE id_hoja_his = @idhojahis
      --AND id_establecimiento = @idestablecimiento

      --UPDATE HOJA_HIS_CITA SET fg_estado = 0 
      --WHERE id_hoja_his = @idhojahis
      --AND id_establecimiento = @idestablecimiento

        -- ELIMINAR DETALLE DE ACTIVIDAD
        DELETE FROM ACTIVIDAD_HIS_CITA_DET 
        WHERE id_cita IN (
        SELECT id_cita
        FROM HOJA_HIS_CITA
        WHERE id_hoja_his = @idhojahis 
        AND id_establecimiento = @idestablecimiento
        )
      
        -- ELIMINAR ACTIVIDAD_CITA
        DELETE FROM ACTIVIDAD_HIS_CITA
        WHERE id_cita IN (
        SELECT id_cita
        FROM HOJA_HIS_CITA
        WHERE id_hoja_his = @idhojahis 
        AND id_establecimiento = @idestablecimiento
        )
        AND id_establecimiento = @idestablecimiento
      
        --ELIMINAR LABS Y DX
        DELETE FROM LAB_X_DIAGCITA
        WHERE id_cita IN (
        SELECT id_cita
        FROM HOJA_HIS_CITA
        WHERE id_hoja_his = @idhojahis 
        AND id_establecimiento = @idestablecimiento
        )
      
        DELETE FROM DIAGNOSTICO_CITA
        WHERE id_cita IN (
        SELECT id_cita
        FROM HOJA_HIS_CITA
        WHERE id_hoja_his = @idhojahis 
        AND id_establecimiento = @idestablecimiento
        )
      
        DELETE FROM LAB_X_EXAMAUXIL
        WHERE id_cita IN (
        SELECT id_cita
        FROM HOJA_HIS_CITA
        WHERE id_hoja_his = @idhojahis 
        AND id_establecimiento = @idestablecimiento
        )
      
        DELETE FROM EXAM_AUXIL
        WHERE id_cita IN (
        SELECT id_cita
        FROM HOJA_HIS_CITA
        WHERE id_hoja_his = @idhojahis 
        AND id_establecimiento = @idestablecimiento
        )
      
        DELETE FROM LAB_X_PRUEBALAB
        WHERE id_cita IN (
        SELECT id_cita
        FROM HOJA_HIS_CITA
        WHERE id_hoja_his = @idhojahis 
        AND id_establecimiento = @idestablecimiento
        )
      
        DELETE FROM PRUEBA_LAB
        WHERE id_cita IN (
        SELECT id_cita
        FROM HOJA_HIS_CITA
        WHERE id_hoja_his = @idhojahis 
        AND id_establecimiento = @idestablecimiento
        )
      
        DELETE FROM LAB_X_CPTCITA
        WHERE id_cita IN (
        SELECT id_cita
        FROM HOJA_HIS_CITA
        WHERE id_hoja_his = @idhojahis 
        AND id_establecimiento = @idestablecimiento
        )
      
        DELETE FROM CPT_CITA
        WHERE id_cita IN (
        SELECT id_cita
        FROM HOJA_HIS_CITA
        WHERE id_hoja_his = @idhojahis 
        AND id_establecimiento = @idestablecimiento
        )
      
        --ELIMINAR HOJAS DE LOTE
        DELETE FROM LOTE_X_HOJA
        WHERE id_hoja_his = @idhojahis
        AND id_establecimiento = @idestablecimiento
      
        -- ELIMINAR EN LA TABLA HOJA_HIS_CITA
        DELETE FROM HOJA_HIS_CITA
        WHERE id_hoja_his = @idhojahis
        AND id_establecimiento = @idestablecimiento

        -- ELIMINAR LAS CITAS SI HAN VENIDO DE OFFLINE
        DELETE FROM OFL_CITA
        WHERE id_cita IN (
        SELECT id_cita
        FROM HOJA_HIS_CITA
        WHERE id_hoja_his = @idhojahis 
        AND id_establecimiento = @idestablecimiento
        )

        -- ELIMINAR EN LA TABLA CITA
        DELETE FROM CITA
        WHERE id_cita IN (
        SELECT id_cita
        FROM HOJA_HIS_CITA
        WHERE id_hoja_his = @idhojahis 
        AND id_establecimiento = @idestablecimiento
        )
      
        -- ELIMINAR CABECERA OFFLINE
        DELETE FROM OFL_HOJA_HIS
        WHERE id_hoja_his = @idhojahis
        AND id_establecimiento = @idestablecimiento

        -- ELIMINAR CABECERA
        DELETE FROM HOJA_HIS
        WHERE id_hoja_his = @idhojahis
        AND id_establecimiento = @idestablecimiento

    END
    ELSE
    BEGIN

      --UPDATE HOJA_HIS_CITA SET fg_estado = 0 
      --WHERE id_hoja_his = @idhojahis
      --AND id_establecimiento = @idestablecimiento
      --AND id_corr = @idcorr AND id_cita = @idcita

      IF(@idactividadhis IS NOT NULL)
      BEGIN
      
        -- ELIMINAR DETALLE DE ACTIVIDAD
        DELETE FROM ACTIVIDAD_HIS_CITA_DET
        WHERE id_actividad_his = @idactividadhis
        AND id_cita = @idcita

        -- ELIMINAR ACTIVIDAD_CITA
        DELETE FROM ACTIVIDAD_HIS_CITA
        WHERE id_actividad_his = @idactividadhis
        AND id_cita = @idcita

      END

      --ELIMINAR EN LA TABLA HOJA_HIS_CITA
      DELETE FROM HOJA_HIS_CITA
      WHERE id_hoja_his = @idhojahis
      AND id_establecimiento = @idestablecimiento
      AND id_corr = @idcorr AND id_cita = @idcita

      IF NOT EXISTS(SELECT 1 FROM HOJA_HIS_CITA WHERE id_cita = @idcita)
      BEGIN    
        --ELIMINAR LABS Y DX
        DELETE FROM LAB_X_DIAGCITA WHERE id_cita = @idcita
        DELETE FROM DIAGNOSTICO_CITA WHERE id_cita = @idcita
        DELETE FROM LAB_X_EXAMAUXIL WHERE id_cita = @idcita
        DELETE FROM EXAM_AUXIL WHERE id_cita = @idcita
        DELETE FROM LAB_X_PRUEBALAB WHERE id_cita = @idcita
        DELETE FROM PRUEBA_LAB WHERE id_cita = @idcita
        DELETE FROM LAB_X_CPTCITA WHERE id_cita = @idcita
        DELETE FROM CPT_CITA WHERE id_cita = @idcita
        
        --ELIMINAR HOJAS DE LOTE
        --DELETE FROM LOTE_X_HOJA
        --WHERE id_hoja_his = @idhojahis
        --AND id_establecimiento = @idestablecimiento
        
        
        -- ELIMINAR EN LA TABLA CITA OFFLINE
        DELETE FROM OFL_CITA WHERE id_cita = @idcita
        -- ELIMINAR EN LA TABLA CITA
        DELETE FROM CITA WHERE id_cita = @idcita
      END


    END

    SET @sMen = 'OK'

  END
  
  SET language @lenguaje
  COMMIT TRAN;

END TRY

BEGIN CATCH
    SET @sMen =( SELECT '*' + convert(varchar(100),ERROR_NUMBER()) + ' - ' + convert(varchar(200),ERROR_MESSAGE()));
  ROLLBACK TRAN;
END CATCH

END
GO

PRINT N'Altering [dbo].[usp_HIS_hojaHisGetbyid]...';


GO
-----------------------------------
ALTER PROCEDURE [dbo].[usp_HIS_hojaHisGetbyid]
@idhojahis INT,
@idestablecimiento INT,
@nrohojahis VARCHAR(15),
@idpunto INT,
@idlote VARCHAR(3)
AS
BEGIN

  SELECT 
  hh.id_hoja_his,
  hh.id_establecimiento,
  hh.nro_hoja_his AS nro_hoja,
  hh.fecha_atencion,
  hh.id_personal_atiende AS idpersonal,
  hh.id_ups,
  hh.id_turno,
  hh.id_personal_digita,
  hh.id_user_digita,
  hh.fecha_registro,
  hh.fg_estado,
  hh.id_punto,
  vp.id_persona AS idpersonaper,
  vp.id_tipo_doc AS idtipodocper,
  vp.num_doc AS numdocper,
  vp.nombres AS nombper,
  vp.apel_paterno AS apelpatper,
  vp.apel_materno AS apelmatper,
  vp.id_genero AS idsexoper,
  vp.fech_nacimiento AS fechnacper,
  vp.desc_domicilio AS descdireccionper,
  vp.desc_domicilio_new AS descdireccionnewper,
  vp.id_ubigeo_res AS idubigeoresper, 
  vp.id_ubigeo_res_new AS idubigeoresnewper,
  vp.id_ubigeo_nac AS idubigeonacper,
  vp.referencia_domicilio AS referenciaper,
  /*hh.fecha_atencion AS fechatencion,*/
  hh.id_ups + ' - ' + u.desc_ups AS desc_ups,
  lh.id_lote,
  vp.id_profesion,
  vp.id_perxeess
  FROM HOJA_HIS hh
  INNER JOIN vw_personal vp ON vp.id_establecimiento = @idestablecimiento
  AND vp.id_personal = hh.id_personal_atiende
  LEFT JOIN UPS u on u.id_ups = hh.id_ups
  LEFT JOIN LOTE_X_HOJA lh ON lh.id_establecimiento = @idestablecimiento AND lh.id_hoja_his = hh.id_hoja_his
  WHERE (@idhojahis IS NULL OR hh.id_hoja_his = @idhojahis)
  AND hh.id_establecimiento = @idestablecimiento
  AND hh.nro_hoja_his = @nrohojahis
  AND lh.id_lote = @idlote
  AND hh.id_punto = @idpunto
  AND hh.fg_estado = 1

END
GO
PRINT N'Altering [dbo].[usp_HIS_hojaHisUpdate]...';


GO
-- =============================================
-- Author     : Rocío Huamán Ramos
-- Description: Insertar/Modificar Hoja His
-- Create date: 26/05/2015

-- Modified by: Mario Garay
-- Date       : 09/11/2015
-- Version    : 1.1
-- Description(Motivo): Agregar numero de pagina a la hoja his
-- Description: 18/11/2015. se agrego estado de pagina para consilidador y fecha de ultima actualizacion
-- Description: 12/02/2016. correcion de editar para duplicados
-- =============================================
ALTER PROCEDURE [dbo].[usp_HIS_hojaHisUpdate]
@idhojahis INT OUTPUT,  -- id_hoja_his - int
@idestablecimiento INT,   -- id_establecimiento - int
@nrohojahis VARCHAR(15), --INT, -- nro_hoja_his - varchar(15)
@fechaatencion VARCHAR(8), -- fecha_atencion - datetime
@idpersonalatiende INT, -- id_personal_atiende - int
@idups VARCHAR(6), -- id_ups - varchar(6)
@idturno VARCHAR(1), -- id_turno - varchar(1)
@idpersonaldigita INT, -- id_personal_digita - int
@iduserdigita INT, -- id_user_digita - int
@idpunto INT, -- id_punto - int
@sMen VARCHAR(300) OUTPUT,
@idlote VARCHAR(3),
@numpag INT,
@idannio INT,
@idmes VARCHAR(2),
@cantregistro INT
AS
BEGIN
BEGIN TRAN
BEGIN TRY
  DECLARE @lenguaje varchar(20), @contador INT
  DECLARE @fgsetadoactual INT
  DECLARE @idhojahisEncontrada INT


  SET @lenguaje=@@language
  IF @@language != 'spanish' SET language spanish

  /*SET @contador = ( SELECT COUNT(1) FROM HOJA_HIS WHERE
                    id_establecimiento = @idestablecimiento
                    AND nro_hoja_his = @nrohojahis
                    AND id_lote = @idlote)*/
  -- IF(@idhojahis IS NULL AND @contador = 0)

  IF(@idhojahis IS NULL)
  BEGIN  
    SET @contador = ( SELECT COUNT(1) FROM HOJA_HIS 
                    WHERE id_establecimiento = @idestablecimiento
                      AND nro_hoja_his = @nrohojahis
                      AND id_lote = @idlote
                      AND anio = @idannio
                      AND mes = @idmes
                  )
    IF @contador > 0
    BEGIN
      SET @idhojahisEncontrada = ( SELECT TOP 1 id_hoja_his FROM HOJA_HIS 
                    WHERE id_establecimiento = @idestablecimiento
                      AND nro_hoja_his = @nrohojahis
                      AND id_lote = @idlote
                      AND anio = @idannio
                      AND mes = @idmes
                  )
    END
  END
  ELSE
  BEGIN
    SET @contador = ( SELECT COUNT(1) FROM HOJA_HIS 
                    WHERE id_establecimiento = @idestablecimiento
                      AND nro_hoja_his = @nrohojahis
                      AND id_lote = @idlote 
                      AND anio = @idannio
                      AND mes = @idmes
                      AND id_hoja_his != @idhojahis
                  )
    IF @contador > 0
    BEGIN
      SET @idhojahisEncontrada = ( SELECT TOP 1 id_hoja_his FROM HOJA_HIS 
                    WHERE id_establecimiento = @idestablecimiento
                      AND nro_hoja_his = @nrohojahis
                      AND id_lote = @idlote
                      AND anio = @idannio
                      AND mes = @idmes
                      AND id_hoja_his != @idhojahis
                  )
    END
  END

  IF @contador > 0
  BEGIN
    SELECT @fgsetadoactual = fg_estado 
    FROM HOJA_HIS 
    WHERE id_establecimiento = @idestablecimiento
      AND id_hoja_his = @idhojahisEncontrada
      AND id_lote = @idlote
      AND anio = @idannio
      AND mes = @idmes
  END

  IF @contador > 0 AND @fgsetadoactual = 1
  BEGIN
    RAISERROR('Ya existe el numero de hoja his para este lote', 16, 1)
  END
  ELSE 
  BEGIN
    IF @contador > 0 AND @fgsetadoactual = 0
    BEGIN
      SET @idhojahis = @idhojahisEncontrada
    END
  END

  IF(@idhojahis IS NULL)
  BEGIN

    SET @idhojahis = (SELECT ISNULL(MAX(id_hoja_his),0) + 1 FROM HOJA_HIS WHERE id_establecimiento = @idestablecimiento)
    
    /*IF @numpag IS NULL
    BEGIN
      SET @numpag = (SELECT isnull(max(num_pag), 0) + 1 FROM HOJA_HIS 
                      WHERE id_establecimiento = @idestablecimiento 
                        AND id_lote = @idlote
                    )
    END*/

    INSERT INTO HOJA_HIS (
       id_hoja_his
      ,id_establecimiento
      ,nro_hoja_his
      ,fecha_atencion
      ,id_personal_atiende
      ,id_ups
      ,id_turno
      ,id_personal_digita
      ,id_user_digita
      ,fecha_registro
      ,fg_estado
      ,id_punto
      ,id_lote
      ,num_pag
      ,his_esta_pag
      ,ult_modificacion,
      anio, 
      mes, 
      cant_registro
    ) VALUES (
       @idhojahis   -- id_hoja_his - int
      ,@idestablecimiento   -- id_establecimiento - int
      ,@nrohojahis -- nro_hoja_his - int
      ,GETDATE() --@fechaatencion -- fecha_atencion - datetime
      ,@idpersonalatiende -- id_personal_atiende - int
      ,@idups -- id_ups - varchar(6)
      ,@idturno -- id_turno - varchar(1)
      ,@idpersonaldigita -- id_personal_digita - int
      ,@iduserdigita -- id_user_digita - int
      ,getdate() -- fecha_registro - datetime
      ,1 -- fg_estado - int
      ,@idpunto -- id_punto - int
      ,@idlote
      ,@numpag
    ,1
    ,getdate(),
    @idannio,
    @idmes,
    @cantregistro
    )
  END
  ELSE
  BEGIN
    /*IF @contador = 0
    BEGIN
      RAISERROR('No existe el número de hoja his especificado para modificar', 16, 1)
    END*/
  
    DECLARE @his_esta_pag TINYINT
    
    SET @his_esta_pag = (SELECT his_esta_pag FROM HOJA_HIS 
                WHERE id_establecimiento = @idestablecimiento 
                  AND id_hoja_his = @idhojahis
                  AND id_lote = @idlote)
      
    SET @his_esta_pag = dbo.fn_getEstadoRegHis(@his_esta_pag)
  
    UPDATE HOJA_HIS SET
      nro_hoja_his = @nrohojahis -- int
      --,fecha_atencion = @fechaatencion -- datetime
      ,id_personal_atiende = @idpersonalatiende -- int
      ,id_ups = @idups -- varchar(6)
      ,id_turno = @idturno -- varchar(1)
      --,id_personal_digita = @idpersonaldigita -- int
      --,id_user_digita = @iduserdigita -- int
      ,id_punto = @idpunto -- int
      ,ult_modificacion = GETDATE()
      ,his_esta_pag = @his_esta_pag
      ,num_pag = @numpag
      ,cant_registro = @cantregistro,
      fg_estado = 1
    WHERE id_establecimiento = @idestablecimiento -- int
    AND id_hoja_his = @idhojahis
    AND id_lote = @idlote
  END
  
  SET @sMen = 'OK';
  SET language @lenguaje
  COMMIT TRAN;
END TRY

BEGIN CATCH
  SET @sMen =( SELECT '*' + convert(varchar(100),ERROR_NUMBER()) + ' - ' + convert(varchar(200),ERROR_MESSAGE()));
  ROLLBACK TRAN;
END CATCH
END
GO

PRINT N'Altering [dbo].[usp_OFFLINE_download_hoja_his]...';


GO
----------------------------------------
-- =============================================
-- Author     : Mario Garay Vilchez
-- Description: Listado de actividades de his por citas por 
--              establecimiento para ser descargada
-- Create date: 14/07/2015
-- Modified by: Mario Garay
-- Date       : 
-- Version    : 1.0.1
-- Description: Agregar num_pag a hoja his
-- =============================================
-- exec usp_OFFLINE_download_hoja_his null, null, null, null, null, null
ALTER PROCEDURE [dbo].[usp_OFFLINE_download_hoja_his]  
  @seccodigo VARCHAR(2),
  @iddisa INT,
  @idred VARCHAR(2),
  @idmicrored VARCHAR(2),
  @idestablecimiento INT,
  @lastEditDate date,
  @fecha_inicio date,
  @fecha_fin date
WITH EXEC AS CALLER
AS
BEGIN

  SET NOCOUNT ON;
  
  SELECT DISTINCT
    HH.id_hoja_his, 
    HH.id_establecimiento, 
    HH.nro_hoja_his, 
    HH.fecha_atencion, 
    HH.id_personal_atiende, 
    HH.id_ups, 
    HH.id_turno, 
    HH.id_personal_digita, 
    HH.id_user_digita, 
    HH.fecha_registro, 
    HH.fg_estado, 
    HH.id_punto,    
    HH.id_lote,    
    HH.num_pag,
	  HH.his_esta_pag,
	  HH.ult_modificacion,
    HH.anio,
    HH.mes,
    HH.cant_registro,
    HHC.id_corr, 
    HHC.id_cita, 
    HHC.fecha_registro AS fecharegistrohojahis,    
	HHC.his_esta_reg, 
	HHC.ult_modificacion AS ult_modificacion_reg, 	
	HHC.fg_estado AS fg_estado_reg, 
    OC.id_instalacion_app_origen AS idinstalacionapporigen, 
    INS.identificador AS identificadorapporigen,
    ISNULL(OC.id_cita_origen, HHC.id_cita) AS idcitaorigen,
    PAT.id_tipo_doc AS idtipodocatiende,
    PAT.num_doc AS numdocatiende,    
    PDIG.id_tipo_doc AS idtipodocdigita,
    PDIG.num_doc AS numdocdigita,
    U.name_user, 
    U.id_disa AS iddisauser, 
    U.id_red AS idreduser, 
    U.id_microred AS idmicroreduser, 
    U.id_establecimiento AS idestablecimientouser, 
    U.sec_codigo AS seccodigouser,  
    CPD.id_disa AS iddisapunto, 
    CPD.id_red AS idredpunto, 
    CPD.id_microred AS idmicroredpunto, 
    CPD.id_establecimiento AS idestablecimientopunto,    
    OHH.id_instalacion_app_origen AS idinstalacionapporigenhh, 
    INSHH.identificador AS identificadorapporigenhh    
  FROM dbo.HOJA_HIS AS HH
  LEFT JOIN dbo.HOJA_HIS_CITA AS HHC ON HH.id_hoja_his = HHC.id_hoja_his 
              AND HH.id_establecimiento = HHC.id_establecimiento 
  LEFT JOIN CITA AS C ON HHC.id_cita = C.id_cita
  INNER JOIN vw_establecimiento AS E ON E.id_establecimiento = HH.id_establecimiento  
  LEFT JOIN PERSONA AS PAT ON HH.id_personal_atiende = PAT.id_persona  
  LEFT JOIN PERSONA AS PDIG ON HH.id_personal_digita = PDIG.id_persona    
  LEFT JOIN SEG_USER AS U ON HH.id_user_digita = U.id_user    
  LEFT JOIN CONFIG_PUNTO_DIGITACION_DETALLE AS CPDD ON 
      HH.id_punto = CPDD.id_punto AND HH.id_establecimiento = CPDD.id_establecimiento
  LEFT JOIN CONFIG_PUNTO_DIGITACION AS CPD ON CPDD.id_punto = CPD.id_punto
  LEFT JOIN OFL_CITA AS OC ON HHC.id_cita = OC.id_cita
  LEFT JOIN OFL_INSTALACION_APP AS INS ON OC.id_instalacion_app_origen = INS.id_instalacion_app  
  LEFT JOIN OFL_HOJA_HIS AS OHH ON HH.id_hoja_his = OHH.id_hoja_his AND HH.id_establecimiento = OHH.id_establecimiento
  LEFT JOIN OFL_INSTALACION_APP AS INSHH ON OHH.id_instalacion_app_origen = INSHH.id_instalacion_app
  WHERE     
    -- (@seccodigo IS NULL OR E.SEC_CODIGO  = @seccodigo)--INT
    (@iddisa IS NULL OR CPD.id_disa = @iddisa)--INT
    AND (@idred IS NULL OR CPD.id_red = @idred)-- STRING
    AND (@idmicrored IS NULL OR CPD.id_microred = @idmicrored)-- STRING    
	AND (C.fech_ing BETWEEN @fecha_inicio AND @fecha_fin)
  ORDER BY HH.id_hoja_his, HH.id_establecimiento, HH.anio, HH.mes, HHC.id_corr
END
GO
PRINT N'Altering [dbo].[usp_OFFLINE_download_lote_x_eess]...';


GO
----------------------------------------
-- =============================================
-- Author     : Mario Garay Vilchez
-- Description: Listado de Lotes por 
--              establecimiento para ser descargada
-- Create date: 19/08/2015
-- Modified by: 
-- Date       : 
-- Version    : 1.0.0
-- Description: 
-- =============================================
ALTER PROCEDURE [dbo].[usp_OFFLINE_download_lote_x_eess]  
  @seccodigo VARCHAR(2),
  @iddisa INT,
  @idred VARCHAR(2),
  @idmicrored VARCHAR(2),
  @idestablecimiento INT,
  @lastEditDate date,
  @fecha_inicio date,
  @fecha_fin date
WITH EXEC AS CALLER
AS
BEGIN

  SET NOCOUNT ON;
  
  SELECT DISTINCT
    LXEESS.id_lote, 
    LXEESS.id_establecimiento, 
    LXEESS.id_personal, 
    LXEESS.annio, 
    LXEESS.mes, 
    LXEESS.fg_estado_lote, 
    LXEESS.tot_pag, 
    LXEESS.tot_reg, 
    LXEESS.fg_estado_local, 
    LXEESS.fecha_creacion,
    PAT.id_tipo_doc,
    PAT.num_doc
  FROM dbo.LOTE_X_EESS AS LXEESS
  /*LEFT JOIN dbo.LOTE_X_HOJA AS LXHOJA ON 
                LXEESS.id_lote = LXHOJA.id_lote 
            AND LXEESS.id_establecimiento = LXHOJA.id_establecimiento */
  LEFT JOIN PERSONA AS PAT ON LXEESS.id_personal = PAT.id_persona
  INNER JOIN (
	  SELECT HH.id_establecimiento, HH.id_lote, HH.anio, HH.mes
	  FROM dbo.HOJA_HIS AS HH
	  INNER JOIN dbo.HOJA_HIS_CITA AS HHC ON HH.id_hoja_his = HHC.id_hoja_his 
				  AND HH.id_establecimiento = HHC.id_establecimiento 
	  INNER JOIN CITA AS C ON HHC.id_cita = C.id_cita  
	  LEFT JOIN CONFIG_PUNTO_DIGITACION_DETALLE AS CPDD ON 
		  HH.id_punto = CPDD.id_punto AND HH.id_establecimiento = CPDD.id_establecimiento
	  LEFT JOIN CONFIG_PUNTO_DIGITACION AS CPD ON CPDD.id_punto = CPD.id_punto
	  WHERE     		
		(@iddisa IS NULL OR CPD.id_disa = @iddisa)--INT
		AND (@idred IS NULL OR CPD.id_red = @idred)-- STRING
		AND (@idmicrored IS NULL OR CPD.id_microred = @idmicrored)-- STRING		
		AND (C.fech_ing BETWEEN @fecha_inicio AND @fecha_fin)
	  GROUP BY HH.id_establecimiento, HH.id_lote, HH.anio, HH.mes
  ) AS HH ON HH.id_lote = LXEESS.id_lote 
        AND HH.id_establecimiento = LXEESS.id_establecimiento
        AND HH.anio = LXEESS.annio
        AND HH.mes = LXEESS.mes
  ORDER BY LXEESS.id_lote, LXEESS.id_establecimiento, LXEESS.annio, LXEESS.mes
END
GO
PRINT N'Altering [dbo].[usp_HIS_LotexEessDelete]...';
GO
-- =============================================
-- Author     : Rocío Huamán Ramos
-- Description: Eliminar lotes de un establecimiento
-- Create date: 28/08/2015

-- Modified by: Pedro Frans Maita Vicente
-- Date       : 12/01/2016
-- Version    : 
-- Description (Motivo): Elimación de formatos y sus registros por lote y establecimiento.
-- =============================================
ALTER PROCEDURE [dbo].[usp_HIS_LotexEessDelete]
@idestablecimiento INT,
@idlote VARCHAR(3),
@p_confirmacion int,
@sMen VARCHAR(300) OUTPUT,
@annio int,
@mes varchar(2)
AS BEGIN
BEGIN TRAN
BEGIN TRY
  
  DECLARE @lenguaje varchar(20);
    SET @lenguaje=@@language
    IF @@language != 'spanish' SET language spanish
    
  DECLARE @v_id_hoja_his_i int
  DECLARE @v_id_hoja_his_ii int, @v_id_correlativo_ii int, @v_id_cita_ii int
  DECLARE @v_count_hoja_enviadas int  
  DECLARE @v_count_registros_enviados int  

  IF @p_confirmacion = 1 
  BEGIN

    SELECT 
    @v_count_hoja_enviadas = COUNT(1)
    FROM HOJA_HIS
    WHERE id_lote = @idlote
    AND id_establecimiento = @idestablecimiento
    AND anio = @annio
    AND mes = @mes
    AND fg_estado = 1
    AND his_esta_pag = 2 -- Hojas Enviadas


    IF @v_count_hoja_enviadas = 0
    BEGIN

      -- Start cur1
      DECLARE cur1 CURSOR FOR SELECT id_hoja_his, id_establecimiento FROM HOJA_HIS
                  WHERE id_lote = @idlote
                  AND id_establecimiento = @idestablecimiento
                  AND anio = @annio
                  AND mes = @mes
                  AND fg_estado = 1
                  AND his_esta_pag IN (null, 1)

      OPEN cur1
      FETCH cur1 INTO @v_id_hoja_his_i, @idestablecimiento
        WHILE (@@FETCH_STATUS = 0)
        BEGIN
          EXEC usp_HIS_hojaHisDelete @v_id_hoja_his_i, @idestablecimiento, NULL, NULL, NULL, 'C', @sMen

          IF @sMen != 'OK'
          BEGIN
            RAISERROR(@sMen, 16, 1)
          END
          /*DELETE FROM LOTE_X_HOJA
          WHERE id_lote = @idlote
          AND id_establecimiento = @idestablecimiento*/

          FETCH cur1 INTO @v_id_hoja_his_i, @idestablecimiento
        END
      CLOSE cur1
      DEALLOCATE cur1
      -- End cur1

      UPDATE LOTE_X_EESS SET fg_estado_local = 0
      WHERE id_lote = @idlote
        AND id_establecimiento = @idestablecimiento
        AND annio = @annio
        AND mes = @mes      
  
      SET @sMen = 'OK'

      SET language @lenguaje
      COMMIT TRAN;
    END
    ELSE
    BEGIN
      SET @sMen = 'Estimado <b>usuario</b> no puede eliminar el lote, porque contiene hojas enviadas.'
    END
  END
  ELSE
  BEGIN
    SET @sMen = 'Estimado <b>usuario</b> debe confirmar la eliminación del Lote, recuerde que al eliminar el lote se eliminarán las hojas y sus registros.'
  END

END TRY

BEGIN CATCH
    SET @sMen =( SELECT '*' + convert(varchar(100),ERROR_NUMBER()) + ' - ' + convert(varchar(200),ERROR_MESSAGE()));
    ROLLBACK TRAN;
END CATCH
END

GO
PRINT N'Altering [dbo].[usp_HIS_LotexEessGetlist]...';
GO
--------------------------------------
-- =============================================
-- Author     : Rocío Huamán Ramos
-- Description: Listado de lotes x establecimientos
-- Create date: 06/08/2015

-- Modified by: 
-- Date       : 
-- Version    : 
-- Description (Motivo): 
-- =============================================
ALTER PROCEDURE [dbo].[usp_HIS_LotexEessGetlist]
@idestablecimiento INT,
@fechacreacion VARCHAR(8),
@idlote VARCHAR(3),
@idmes VARCHAR(2),
@idannio INT
AS
BEGIN

  SELECT 
  le.id_lote,
  le.id_lote AS desc_lote,
  le.id_establecimiento,
  le.annio,
  le.mes,
  m.desc_mes,
  le.fecha_creacion,
  le.tot_pag,
  le.fg_estado_lote
  FROM LOTE_X_EESS le
  INNER JOIN MES m ON m.id_mes = le.mes
  WHERE le.id_establecimiento = @idestablecimiento
  AND (@fechacreacion IS NULL OR CONVERT(VARCHAR,le.fecha_creacion,112) = @fechacreacion)
  AND (@idlote IS NULL OR le.id_lote LIKE '%' + @idlote + '%')
  AND (@idmes IS NULL OR le.mes = @idmes)
  AND (@idannio IS NULL OR le.annio = @idannio)
  AND le.fg_estado_local = 1

END
GO
PRINT N'Altering [dbo].[usp_HIS_LotexEessUpdate]...';


GO
------------------------------------
-- =============================================
-- Author     : Rocío Huamán Ramos
-- Description: Insertar/Modificar Lotes
-- Create date: 10/01/2013

-- Modified by: Rocío Huamán Ramos
-- Date       : 15/01/2015
-- Version    : 
-- Description (Motivo): 
-- =============================================
ALTER PROCEDURE [dbo].[usp_HIS_LotexEessUpdate]
@idlote varchar(3),
@idestablecimiento int,
@idpersonal int,
@annio int,
@mes varchar(2),
@fgestadolote char(2),
@totpag int,
@totreg int,
@fgestadolocal int,
@idloteold varchar(3),
@idtipo VARCHAR(1),
@sMen VARCHAR(300) OUTPUT,
@fechacreacion VARCHAR(8)
AS BEGIN
BEGIN TRAN
BEGIN TRY
  
  DECLARE @lenguaje varchar(20);
  DECLARE @fgestadolocalactual INT

  SET @lenguaje=@@language
  IF @@language != 'spanish' SET language spanish
  
  DECLARE @count INT

  IF @idtipo IS NULL
  BEGIN
    SET @count = (
      SELECT
      COUNT(1)
      FROM LOTE_X_EESS
      WHERE id_lote = @idlote
      AND id_establecimiento = @idestablecimiento
      AND annio = @annio
      AND mes = @mes
    )
  END
  ELSE
  BEGIN
    SET @count = (
      SELECT
      COUNT(1)
      FROM LOTE_X_EESS
      WHERE id_lote = @idlote
      AND id_establecimiento = @idestablecimiento
      AND annio = @annio
      AND mes = @mes
      AND id_lote != @idloteold
    )

  END

  IF @count > 0
  BEGIN

    SELECT 
    @fgestadolocalactual = fg_estado_local
    FROM LOTE_X_EESS
        WHERE id_lote = @idlote
    AND id_establecimiento = @idestablecimiento
    AND annio = @annio
    AND mes = @mes

  END

  IF @count > 0 AND @fgestadolocalactual = 1
  BEGIN
    SET @sMen = 'Estimado <b>usuario</b>, este <b>lote ya existe</b> en el establecimiento.'
  END
  ELSE 
  BEGIN
    IF @count > 0 AND @fgestadolocalactual = 0
    BEGIN
      SET @idtipo = 'E'
    END
  END

  IF @sMen IS NULL OR @sMen = ''
  BEGIN 

    IF(@count=0 AND @idtipo IS NULL)
    BEGIN

      INSERT INTO LOTE_X_EESS (
      id_lote,
      id_establecimiento,
      id_personal,
      annio,
      mes,
      fg_estado_lote,
      tot_pag,
      tot_reg,
      fg_estado_local,
      fecha_creacion
      ) VALUES (
      @idlote,
      @idestablecimiento,
      @idpersonal,
      @annio,
      @mes,
      @fgestadolote,
      @totpag,
      @totreg,
      1,
      @fechacreacion)
  
      SET @sMen = 'OK';

    END
    ELSE
    BEGIN
    
      IF(@idtipo = 'E')
      BEGIN

        UPDATE LOTE_X_EESS SET 
        id_lote = @idlote,
        fg_estado_lote = @fgestadolote,
        tot_pag = @totpag,
        fg_estado_local = 1
        WHERE id_lote = @idloteold
        AND id_establecimiento = @idestablecimiento
        AND annio = @annio
        AND mes = @mes
        
        UPDATE LOTE_X_HOJA SET 
        id_lote = @idlote
        WHERE id_lote = @idloteold
        AND id_establecimiento = @idestablecimiento

        UPDATE HOJA_HIS SET
        id_lote = @idlote
        WHERE id_lote = @idloteold
        AND id_establecimiento = @idestablecimiento

        SET @sMen = 'OK';

      END
      ELSE
      BEGIN
        SET @sMen = 'Estimado <b>usuario</b>, este <b>lote ya existe</b> en el establecimiento.'
      END

    END
  END

  SET language @lenguaje
  COMMIT TRAN

END TRY

BEGIN CATCH
  SET @sMen =( SELECT '*' + convert(varchar(100),ERROR_NUMBER()) + ' - ' + convert(varchar(200),ERROR_MESSAGE()));
  ROLLBACK TRAN;
END CATCH

END
GO
PRINT N'Altering [dbo].[usp_ACTIVIDAD_actividadhisAtencionUpdate]...';


GO
----------------------------------
ALTER PROCEDURE [dbo].[usp_ACTIVIDAD_actividadhisAtencionUpdate]
@idactividadhis VARCHAR(6),
@idcita INT,
@idups VARCHAR(6),
@idubigeo VARCHAR(6),
@idpersonalatiende INT,
@fechaactividad VARCHAR(8),
@idestablecimiento INT,
@sMen VARCHAR(300) OUTPUT
AS BEGIN

BEGIN TRAN
       BEGIN TRY
    
             DECLARE @idactividadhisold_ VARCHAR(6),
        @count INT
             DECLARE @lenguaje varchar(20);
             SET @lenguaje=@@language
             IF @@language != 'spanish' SET language spanish
    
             SET @idactividadhisold_ = @idactividadhis
             SET @count = (SELECT COUNT(1) FROM ACTIVIDAD_HIS_CITA WHERE id_cita = @idcita AND id_establecimiento = @idestablecimiento)
    
             IF(@count = 0)
             BEGIN

                    INSERT INTO ACTIVIDAD_HIS_CITA (
                    id_actividad_his,
                    id_cita,
                    id_ups,
                    id_ubigeo,
                    id_personal_diag,
                    fecha_actividad,
                    fecha_registro,
                    id_establecimiento
                    ) VALUES (
                    @idactividadhis,
                    @idcita,
                    @idups,
                    @idubigeo,
                    @idpersonalatiende,
                    @fechaactividad,
                    GETDATE(),
                    @idestablecimiento)

             END
             ELSE
             BEGIN

                    UPDATE ACTIVIDAD_HIS_CITA SET
                    id_actividad_his = @idactividadhis,
                    id_ups = @idups,
                    id_ubigeo = @idubigeo,
                    id_personal_diag = NULL
                    WHERE id_cita = @idcita
                    AND id_establecimiento = @idestablecimiento
    
             END

             SET @sMen = 'OK';
             SET language @lenguaje

    COMMIT TRAN;
END TRY

BEGIN CATCH
       SET @sMen = (SELECT '*' + convert(varchar(100),ERROR_NUMBER()) + ' - ' + convert(varchar(200),ERROR_MESSAGE()));
       ROLLBACK TRAN;
END CATCH

END
GO
PRINT N'Altering [dbo].[usp_CITA_CitaUpdate]...';


GO
----------------------------------
-- =============================================
-- Author     : Rocío Huamán Ramos
-- Description: Insertar/Modificar Citas
-- Create date: 
-- Modified by: Rocío Huamán Ramos
-- Date       : 26/05/2015
-- Version    : 2
-- Description (Motivo): Se aumentó la parte de estadístico punto de digitación y parámetros de entrada.
-- =============================================
ALTER PROCEDURE [dbo].[usp_CITA_CitaUpdate]
(
@idcita int OUTPUT,
@idprogramacion int,
@idupssp varchar(6),
@idpersonalsp int,
@idtipcondserv varchar(10),
@idpaciente int,
@fecha varchar(10),
@horacita varchar(5),
@iddia int,
@idfinanciador varchar(10),
@idtipcondestab varchar(10),
@idpersonalreg int,
@idestablecimiento int,
@sMen varchar(300) OUTPUT,
@numafil varchar(15),
/*,
@tipoatencion varchar(1),
@lugaratencion varchar(1),
@conceptopres varchar(1),
@nroautoriza varchar(10),
@monto varchar(8),
@tipopersonal varchar(1),
@idestabref int,
@nrohojaref varchar(5)
*/
@idupspiso INT,
@idconsultorio INT,
@componente INT,
@fgsaludescolar INT,
@nrointervencion INT,
@tipocita VARCHAR(2), -- 'PD':Estadístico Punto Digitación
@annioedad INT,
@mesedad INT,
@diaedad INT,
@idturno VARCHAR(1)
)
AS
BEGIN
BEGIN TRAN
BEGIN TRY
  --declare @numafil varchar(15);
	Declare @idups varchar(6);
  Declare @idpersonal int;
  Declare @edad int;
  Declare @tipedad varchar(10);
  --Declare @idturno varchar(1);
  DECLARE @vConta int;
  DECLARE @horacita_ varchar(5);
  declare @fech_ datetime;
  DECLARE @fecha_ varchar(8)
  DECLARE @countci int
	declare @lenguaje varchar(20);
    set @lenguaje=@@language
    if @@language != 'spanish' set language spanish
  SET @vConta = (SELECT COUNT (1) FROM DIAGNOSTICO_CITA WHERE id_cita = @idcita);
--  IF(@vConta>0)
--  BEGIN
--  	SET @sMen = 'La cita médica ya fue realizada, no se pueden realizar cambios.';
--  	COMMIT TRAN;
--  	RETURN;
--  END
  IF (isnull(@idcita,0) = 0)
  BEGIN
    -- Version 2
    IF(@tipocita = 'PD')
    BEGIN
  		SET @idcita = (SELECT ISNULL(MAX(id_cita),0) + 1 FROM cita);
      --SET @fech_ = '20130123 14:23:05';
      SET @edad = (SELECT
				   CASE WHEN (@annioedad<>0) THEN @annioedad
						WHEN (@annioedad = 0 AND @mesedad <> 0) THEN @mesedad
						ELSE @diaedad
				   END)
					
				  /*isnull((SELECT ROUND( DATEDIFF(DD, per.fech_nacimiento , getdate())/365,2) 
                  from paciente pa 
                  inner join PERSONA per on pa.id_paciente = per.id_persona
                  WHERE pa.id_paciente = @idpaciente),0);*/
      Set @tipedad =  (SELECT
						CASE WHEN (@annioedad<>0) THEN 'A'
							WHEN (@annioedad = 0 AND @mesedad <> 0) THEN 'M'
							ELSE 'D'
						END)
					  /*(SELECT (CASE WHEN ROUND(DATEDIFF(DD, per.fech_nacimiento, getdate()), 2) BETWEEN 0 AND 30 THEN 'D' 
                      WHEN ROUND(DATEDIFF(DD, per.fech_nacimiento, getdate()), 2) BETWEEN 31 AND 365 THEN 'M' 
                      ELSE 'A' END) from paciente pa
                      inner join PERSONA per on pa.id_paciente = per.id_persona
                      WHERE pa.id_paciente = @idpaciente);*/

      SET @fech_ = CONVERT(VARCHAR,@fecha) + ' ' + CONVERT(VARCHAR,@horacita);
  		INSERT INTO cita (id_cita, id_paciente, id_ups, fech_ing, id_financiador, id_tipcond_estab, 
  		id_tipcond_serv, id_tipedad_reg, edad_reg, esta_reg, 
  		id_turno, id_personal_diag, id_personal_reg, id_establecimiento, num_afil, flagCita, id_ups_piso, id_consultorio,componente,fg_salud_escolar, nro_intervencion, fgDig,
      annio_edad, mes_edad, dia_edad)
  		VALUES (@idcita, @idpaciente, @idupssp, @fech_, @idfinanciador, @idtipcondestab, 
  		@idtipcondserv, @tipedad, @edad, 'R', 
  	  @idturno, @idpersonalsp, @idpersonalreg, @idestablecimiento, @numafil, 0, NULL, NULL,@componente, 0, @nrointervencion, 1,
      @annioedad, @mesedad, @diaedad);
    END
    ELSE
    BEGIN
      IF(@vConta>0)
      BEGIN
      	SET @sMen = 'La cita médica ya fue realizada, no se pueden realizar cambios.';
      	COMMIT TRAN;
      	RETURN;
      END
      SET @horacita_ = (SELECT CONVERT(VARCHAR(8),CONVERT(DATETIME, @horacita),108));
      Set @idturno = (SELECT tu.id_turno FROM turno tu WHERE CONVERT(VARCHAR,@horacita_) BETWEEN tu.hora_ini AND tu.hora_fin);
      SET @fecha_ = (SELECT CONVERT(VARCHAR,@fecha))
      select @countci=count(1) from PROGRAMACION p
      inner join PROGRAMACION_DET pd on pd.id_programacion = p.id_programacion
      inner join vw_paciente pac on pac.id_establecimiento = p.id_establecimiento and pac.id_persona=p.id_personal
      where pd.hora=@horacita_ and pac.id_paciente=@idpaciente and p.id_anio=left(@fecha_, 4) and p.id_mes=substring(@fecha_, 5,2)
      and p.id_personal=@idpersonalsp and p.id_establecimiento = @idestablecimiento
      IF(@countci>0)
        BEGIN
        	SET @sMen = 'El paciente Tiene Cita en otro Servicio (UPS) a la misma hora';
        	COMMIT TRAN;
        	RETURN;
        END
    	if (ISNULL(@idprogramacion,0) <> 0)
    	begin
    		    Set @idups = (SELECT id_ups FROM programacion WHERE id_programacion = @idprogramacion);
            Set @idpersonal = (SELECT id_personal FROM programacion WHERE id_programacion = @idprogramacion);
    	end;
    	else
    	begin
    		Set @idups = @idupssp;
        Set @idpersonal = @idpersonalsp;
    	end;
      Set @edad = isnull((SELECT ROUND( DATEDIFF(DD, per.fech_nacimiento , getdate())/365,2) 
      from paciente pa 
      inner join PERSONA per on pa.id_paciente = per.id_persona
      WHERE pa.id_paciente = @idpaciente),0);
      Set @tipedad = (SELECT (CASE WHEN ROUND(DATEDIFF(DD, per.fech_nacimiento, getdate()), 2) BETWEEN 0 AND 30 THEN 'D' 
  								 WHEN ROUND(DATEDIFF(DD, per.fech_nacimiento, getdate()), 2) BETWEEN 31 AND 365 THEN 'M' 
  						    ELSE 'A' END) from paciente pa
                  inner join PERSONA per on pa.id_paciente = per.id_persona
                  WHERE pa.id_paciente = @idpaciente);
      SET @horacita_ = (SELECT CONVERT(VARCHAR(8),CONVERT(DATETIME, @horacita),108));
      Set @idturno = (SELECT tu.id_turno FROM turno tu WHERE CONVERT(VARCHAR,@horacita_) BETWEEN tu.hora_ini AND tu.hora_fin);
      SET @fecha_ = (SELECT CONVERT(VARCHAR,@fecha))
--      if (isnull(@idcita,0) = 0)
--      begin
    --  SET NOCOUNT ON;
  		Set @idcita = (SELECT ISNULL(MAX(id_cita),0) + 1 FROM cita);
      --set @fech_ = '20130123 14:23:05';
      SET @fech_ = CONVERT(VARCHAR,@fecha) + ' ' + CONVERT(VARCHAR,@horacita);
  		INSERT INTO cita (id_cita, id_paciente, id_ups, fech_ing, id_financiador, id_tipcond_estab, 
  		id_tipcond_serv, id_tipedad_reg, edad_reg, esta_reg, 
  		id_turno, id_personal_diag, id_personal_reg, id_establecimiento, num_afil, flagCita, id_ups_piso, id_consultorio,componente,fg_salud_escolar, nro_intervencion/*,
      lugar_atencion, tipo_atencion, concepto_pres, nro_autoriza, monto, tipo_personal*/) 
  		VALUES (@idcita, @idpaciente, @idups, @fech_, @idfinanciador, @idtipcondestab, 
  		@idtipcondserv, @tipedad, @edad, 'R', 
  	  @idturno, @idpersonal, @idpersonalreg, @idestablecimiento,@numafil,0,@idupspiso,@idconsultorio,@componente, @fgsaludescolar, @nrointervencion/*,
      @lugaratencion, @tipoatencion, @conceptopres, @nroautoriza, @monto, @tipopersonal*/);
    --END
    END
  END
	ELSE
	BEGIN
	SET @edad = (SELECT
				   CASE WHEN (@annioedad<>0) THEN @annioedad
						WHEN (@annioedad = 0 AND @mesedad <> 0) THEN @mesedad
						ELSE @diaedad
				   END)
      Set @tipedad =  (SELECT
						CASE WHEN (@annioedad<>0) THEN 'A'
							WHEN (@annioedad = 0 AND @mesedad <> 0) THEN 'M'
							ELSE 'D'
						END)

    DECLARE @id_ups_repo INT; 
    DECLARE @id_personal_diag_repo INT; 

    
    SELECT @id_ups_repo = id_ups, @id_personal_diag_repo = id_personal_diag 
    FROM cita WHERE id_cita = @idcita;

    IF @idupssp IS NULL
    BEGIN
      SET @idupssp = @id_ups_repo
    END

    IF @idpersonalsp IS NULL
    BEGIN
      SET @idpersonalsp = @id_personal_diag_repo
    END

		UPDATE cita SET 
    id_ups = @idupssp,
    id_personal_diag = @idpersonalsp,
		id_paciente = @idpaciente, id_financiador = @idfinanciador, id_tipcond_estab = @idtipcondestab, 
		id_tipcond_serv = @idtipcondserv, id_turno = @idturno,
    num_afil = @numafil, componente = @componente, nro_intervencion = @nrointervencion,
	id_tipedad_reg = @tipedad, edad_reg = @edad,
	 annio_edad = @annioedad, mes_edad = @mesedad, dia_edad = @diaedad, fech_ing = @fecha
		WHERE id_cita = @idcita;
	END
  IF (ISNULL(@idprogramacion,0) <> 0)
  BEGIN
    UPDATE programacion_det SET id_cita = @idcita 
    WHERE id_programacion = @idprogramacion AND hora = @horacita AND id_dia = @iddia;
  END
 --Set @idcita=@idcita;
	SET @sMen = 'OK';
	COMMIT TRAN;
  set language @lenguaje
END TRY
BEGIN CATCH
	Set @sMen = (SELECT '*' + convert(varchar(100),ERROR_NUMBER()) + ' - ' + convert(varchar(200),ERROR_MESSAGE()));
	ROLLBACK TRAN;
END CATCH
END;
GO
PRINT N'Altering [dbo].[usp_EXPORTAR_maestroPersonalGetlist]...';


GO
---------------------------
-- =============================================
-- Author     : Rocío Huamán Ramos
-- Description: Obtener lista de personal que pertenece al EESS
-- Create date: 10/08/2015

-- Modified by: 
-- Date       : 
-- Version    : 
-- Description (Motivo): 
-- =============================================
ALTER PROCEDURE [dbo].[usp_EXPORTAR_maestroPersonalGetlist]
@fechaini VARCHAR(8),
@fechafin VARCHAR(8),
@idpunto INT,
@tipodescarga INT
AS
BEGIN
  DECLARE @fechaini_ DATETIME,
          --@fechafin varchar(8),
          @fechafin_ DATETIME;

  -- SET @fechaini = @fechaini --'20150704'
  -- SET @fechafin = @fechafin --'20150704'
  -- SET @fechafin_ = CONVERT(VARCHAR,CAST(@fechafin AS smalldatetime) + 1,112)
  SET @fechaini_ = CAST((@fechaini + ' 00:00:00') AS datetime)
  SET @fechafin_ = CAST((@fechafin + ' 23:59:59') AS datetime)

  DECLARE @lenguaje varchar(20)
  SET @lenguaje=@@language
  IF @@language != 'spanish' SET language spanish

  IF @tipodescarga IS NULL OR @tipodescarga = 1
  BEGIN
    SELECT vp.cod_personal_ieds AS codigo_profesional, vp.nomb_comp_per_apel nomb_profesional,
      dbo.LPAD(CONVERT(VARCHAR(9), ve.CODUNICO ),9,'0') AS id_establecimiento, vp.id_profesion,
      dbo.LPAD(CONVERT(VARCHAR(2),vp.id_condicion), 2, '0') AS id_condicion,
      --CONVERT(VARCHAR,vp.fech_registro_eess,112) AS fecha_registro,
      vp.fech_registro_eess AS fecha_registro,
      --CONVERT(VARCHAR,vp.fech_baja_eess,112) AS fecha_baja, 
      vp.fech_baja_eess AS fecha_baja,
      null AS plaza
    FROM PERS_X_EESS pe
    INNER JOIN vw_personal vp ON vp.id_personal = pe.id_personal
    AND vp.id_establecimiento = pe.id_establecimiento
    INNER JOIN vw_establecimiento ve ON ve.id_establecimiento = vp.id_establecimiento
    WHERE pe.id_establecimiento IN (
      SELECT id_establecimiento
      FROM CONFIG_PUNTO_DIGITACION_DETALLE
      WHERE id_punto = @idpunto --46
    )
    AND pe.fecha_registro BETWEEN @fechaini_ AND @fechafin_
    ORDER BY vp.id_establecimiento, vp.nomb_comp_per_apel
  END
  ELSE
  BEGIN
    SELECT vp.cod_personal_ieds AS codigo_profesional, vp.nomb_comp_per_apel nomb_profesional,
      dbo.LPAD(CONVERT(VARCHAR(9), ve.CODUNICO ),9,'0') AS id_establecimiento, vp.id_profesion,
      dbo.LPAD(CONVERT(VARCHAR(2),vp.id_condicion), 2, '0') AS id_condicion,
      --CONVERT(VARCHAR,vp.fech_registro_eess,112) AS fecha_registro,
      vp.fech_registro_eess AS fecha_registro,
      --CONVERT(VARCHAR,vp.fech_baja_eess,112) AS fecha_baja, 
      vp.fech_baja_eess AS fecha_baja,
      null AS plaza
    FROM PERS_X_EESS pe
    INNER JOIN vw_personal vp ON vp.id_personal = pe.id_personal
    AND vp.id_establecimiento = pe.id_establecimiento
    INNER JOIN vw_establecimiento ve ON ve.id_establecimiento = vp.id_establecimiento
    WHERE pe.id_establecimiento IN (
      SELECT id_establecimiento
      FROM CONFIG_PUNTO_DIGITACION_DETALLE
      WHERE id_punto = @idpunto --46
    )
    -- AND pe.fecha_registro BETWEEN @fechaini AND @fechafin_
    ORDER BY vp.id_establecimiento, vp.nomb_comp_per_apel
  END
  SET language @lenguaje

END
GO
PRINT N'Altering [dbo].[usp_HIS_hojaHisCitaUpdate]...';


GO
---------------------------------
-- =============================================
-- Author     : Rocío Huamán Ramos
-- Description: Insertar/Modificar Hoja His
-- Create date: 26/05/2015

-- Modified by: 
-- Date       : 
-- Version    : 
-- Description(Motivo): 
-- =============================================
ALTER PROCEDURE [dbo].[usp_HIS_hojaHisCitaUpdate]
@idhojahis INT   -- id_hoja_his - int
,@idestablecimiento INT   -- id_establecimiento - int
,@idcorr  INT-- id_corr - int
,@idcita INT
,@sMen VARCHAR(300) OUTPUT
AS
BEGIN
  BEGIN TRAN
  BEGIN TRY
    DECLARE @lenguaje varchar(20);
    SET @lenguaje=@@language
    IF @@language != 'spanish' SET language spanish
    
    DECLARE @counthxc INT

    SET @counthxc = (SELECT COUNT(1)
                     FROM HOJA_HIS_CITA
                     WHERE id_hoja_his = @idhojahis
                     AND id_establecimiento = @idestablecimiento
                     AND id_cita = @idcita)
                     
    -- Se comentó porque el idcorr es el nroresgistro que proviene del js
    -- SET @idcorr = ( SELECT ISNULL(MAX(id_corr),0) + 1 FROM HOJA_HIS_CITA WHERE id_hoja_his = @idhojahis
    -- AND id_establecimiento = @idestablecimiento)

    IF(@counthxc=0)
    BEGIN
      INSERT INTO HOJA_HIS_CITA (
         id_hoja_his
        ,id_establecimiento
        ,id_corr
        ,id_cita
        ,fecha_registro
    ,his_esta_reg
    ,ult_modificacion
    ,fg_estado
      ) VALUES (
         @idhojahis   -- id_hoja_his - int
        ,@idestablecimiento   -- id_establecimiento - int
        ,@idcorr  -- id_corr - int
        ,@idcita -- id_cita - int
        ,getdate() -- fecha_registro - datetime
    ,1
    ,getdate()
    ,1
      )
    END
  ELSE 
  BEGIN
    DECLARE @his_esta_reg TINYINT
    
    SELECT @idcorr = id_corr, @his_esta_reg = his_esta_reg FROM HOJA_HIS_CITA 
    WHERE id_hoja_his = @idhojahis
    AND id_establecimiento = @idestablecimiento
    AND id_cita = @idcita
    
    SET @his_esta_reg = dbo.fn_getEstadoRegHis(@his_esta_reg)
    
    UPDATE HOJA_HIS_CITA SET 
      ult_modificacion = getdate(),
      his_esta_reg = @his_esta_reg
    WHERE id_hoja_his = @idhojahis
       AND id_establecimiento = @idestablecimiento
       AND id_corr = @idcorr
  END
    SET @sMen = 'OK';
    set language @lenguaje
    COMMIT TRAN;
  END TRY

  BEGIN CATCH
    SET @sMen =( SELECT '*' + convert(varchar(100),ERROR_NUMBER()) + ' - ' + convert(varchar(200),ERROR_MESSAGE()));
    ROLLBACK TRAN;
  END CATCH
END
GO
PRINT N'Altering [dbo].[usp_MANT_centroPobladoGetlist]...';


GO
----------------------------------------
--********************* CENTRO POBLADO ***********************
ALTER PROCEDURE [dbo].[usp_MANT_centroPobladoGetlist]
@idccpp15 varchar(10),
@nombcentropoblado varchar(350),
@start int,
@limit int,
@cant int out,
@idflag varchar(2),
@param varchar(10),
@descubigeo VARCHAR(120)
AS
BEGIN
  DECLARE @start_ int;
  DECLARE @limit_ int;
  
  IF(ISNULL(@param,'0') <> '0')
  BEGIN
    SET @idccpp15 = (SELECT CASE ISNUMERIC(@param) WHEN 1 THEN @param END)
    SET @nombcentropoblado = (SELECT CASE ISNUMERIC(@param) WHEN 0 THEN @param END)
  END
  
    IF(@idflag = 'CP')
  BEGIN
    SET @start_ = @start + 1;
    SET @limit_ = @start + @limit;
    
    SELECT t1.idccpp_15, t1.nomb_centro_poblado, t1.area, t1.codigo_centro_poblado, t1.id_distrito_15, t1.idccpp_13, t1.nomb_comp_ubi
    FROM (
      SELECT row_number() OVER (ORDER BY cp.nomb_centro_poblado) AS rownumber, cp.idccpp_15, cp.nomb_centro_poblado, cp.area, cp.codigo_centro_poblado, cp.id_distrito_15, cp.idccpp_13, ub.nomb_comp_ubi
      FROM CENTRO_POBLADO cp
      INNER JOIN vw_ubigeo ub ON ub.id_ubigeo = cp.id_distrito_15
      WHERE (@idccpp15 IS NULL OR cp.idccpp_15 = @idccpp15)
      AND (@nombcentropoblado IS NULL OR cp.nomb_centro_poblado LIKE '%'+ @nombcentropoblado +'%')
      AND (@descubigeo IS NULL OR ub.nomb_comp_ubi LIKE '%' + @descubigeo + '%')
    ) t1
    WHERE rownumber BETWEEN @start_ AND @limit_;

    SET @cant = (
      SELECT COUNT(1)
      FROM CENTRO_POBLADO cp
      INNER JOIN vw_ubigeo ub ON ub.id_ubigeo = cp.id_distrito_15
      WHERE (@idccpp15 IS NULL OR cp.idccpp_15 = @idccpp15)
      AND (@nombcentropoblado IS NULL OR cp.nomb_centro_poblado LIKE '%'+ @nombcentropoblado +'%')
      AND (@descubigeo IS NULL OR ub.nomb_comp_ubi LIKE '%' + @descubigeo + '%')
    )
  END
  ELSE
  BEGIN
      SELECT cp.idccpp_15, cp.nomb_centro_poblado, cp.area, cp.codigo_centro_poblado, cp.id_distrito_15, cp.idccpp_13, ub.nomb_comp_ubi
      FROM CENTRO_POBLADO cp
      INNER JOIN vw_ubigeo ub ON ub.id_ubigeo = cp.id_distrito_15
      WHERE (@idccpp15 IS NULL OR cp.idccpp_15 = @idccpp15)
      AND (@nombcentropoblado IS NULL OR cp.nomb_centro_poblado LIKE '%'+ @nombcentropoblado +'%')
      AND (@descubigeo IS NULL OR ub.nomb_comp_ubi LIKE '%' + @descubigeo + '%')
  END
END
GO
PRINT N'Altering [dbo].[usp_MANT_centroPobladoSearch]...';


GO
---------------------------------------------------
ALTER PROCEDURE [dbo].[usp_MANT_centroPobladoSearch]
@idccpp15 varchar(10),
@nombcentropoblado varchar(350),
@start int,
@limit int,
@cant int out,
@idflag varchar(2),
@param varchar(10)
AS
BEGIN
  DECLARE @start_ int;
  DECLARE @limit_ int;
  
  IF(ISNULL(@param,'0') <> '0')
  BEGIN
    SET @idccpp15 = (SELECT CASE ISNUMERIC(@param) WHEN 1 THEN @param END)
    SET @nombcentropoblado = (SELECT CASE ISNUMERIC(@param) WHEN 0 THEN @param END)
  END
  
    IF(@idflag = 'CP')
  BEGIN
    SET @start_ = @start + 1;
    SET @limit_ = @start + @limit;
    
    SELECT t1.idccpp_15, t1.nomb_centro_poblado, t1.area, t1.codigo_centro_poblado, t1.id_distrito_15, t1.idccpp_13
    FROM (
      SELECT row_number() OVER (ORDER BY nomb_centro_poblado) AS rownumber, idccpp_15, nomb_centro_poblado, area, codigo_centro_poblado, id_distrito_15, idccpp_13
      FROM CENTRO_POBLADO
      WHERE (@idccpp15 IS NULL OR idccpp_15 = @idccpp15)
      AND (@nombcentropoblado IS NULL OR nomb_centro_poblado LIKE '%'+ @nombcentropoblado +'%')
    ) t1
    WHERE rownumber BETWEEN @start_ AND @limit_;

    SET @cant = (
      SELECT COUNT(1)
      FROM CENTRO_POBLADO
      WHERE (@idccpp15 IS NULL OR idccpp_15 = @idccpp15)
      AND (@nombcentropoblado IS NULL OR nomb_centro_poblado LIKE '%'+ @nombcentropoblado +'%')
    )
  END
  ELSE
  BEGIN
      SELECT idccpp_15, nomb_centro_poblado, area, codigo_centro_poblado, id_distrito_15, idccpp_13
      FROM CENTRO_POBLADO
      WHERE (@idccpp15 IS NULL OR idccpp_15 = @idccpp15)
      AND (@nombcentropoblado IS NULL OR nomb_centro_poblado LIKE '%'+ @nombcentropoblado +'%')
  END
END
GO
PRINT N'Altering [dbo].[usp_MANT_itemsPuntoDigitacionSearch]...';


GO
----------------------
ALTER PROCEDURE [dbo].[usp_MANT_itemsPuntoDigitacionSearch]
@coditem varchar(10), 
@descitem varchar(300), 
@start int,
@limit int, 
@cant int OUTPUT, 
@idflag varchar(2), 
@param varchar(20),
@fgestado VARCHAR(1),
@tipoitem VARCHAR(2),
@idsexo VARCHAR(1),
@edadannios VARCHAR(8) -- 120.2356
AS
BEGIN

  DECLARE @start_ int;
  DECLARE @limit_ int;
  DECLARE @cantnum int, @edadannios_ decimal(8,4)
            
  SET @edadannios_ = CONVERT(decimal(8,4),@edadannios)

  IF(ISNULL(@param,'0') <> '0')
  BEGIN
    SET @cantnum = (SELECT CASE
            WHEN (CHARINDEX('0',@param)>=1) THEN 1
            WHEN (CHARINDEX('1',@param)>=1) THEN 1
            WHEN (CHARINDEX('2',@param)>=1) THEN 1
            WHEN (CHARINDEX('3',@param)>=1) THEN 1
            WHEN (CHARINDEX('4',@param)>=1) THEN 1
            WHEN (CHARINDEX('5',@param)>=1) THEN 1
            WHEN (CHARINDEX('6',@param)>=1) THEN 1
            WHEN (CHARINDEX('7',@param)>=1) THEN 1
            WHEN (CHARINDEX('8',@param)>=1) THEN 1
            WHEN (CHARINDEX('9',@param)>=1) THEN 1
            END) 

    IF(@cantnum>=1 and LEN(@param)<=5)
    BEGIN
      SET @coditem = @param
    END
    ELSE
    BEGIN
      SET @descitem = @param
    END
  END

  IF(@idflag = 'CP')
  BEGIN
                 
    SET @start_ = @start + 1;
    SET @limit_ = @start + @limit;

    SELECT
    t1.cod_item, t1.desc_item, t1.fg_tipo, t1.desc_tipo_item
    FROM (
      SELECT
      row_number() OVER (ORDER BY cod_item) AS rownumber, cod_item, desc_item, fg_tipo, desc_tipo_item
      FROM vw_itemsPuntoDigitacion
      WHERE (@coditem IS NULL OR cod_item LIKE '%' + @coditem + '%')
      AND (@descitem IS NULL OR desc_item LIKE '%' + @descitem + '%')
      AND (@tipoitem IS NULL OR fg_tipo = @tipoitem)
      AND (@idsexo IS NULL OR (id_sexo = @idsexo OR id_sexo IS NULL))
      AND (@edadannios IS NULL OR @edadannios = 0 OR (@edadannios BETWEEN ISNULL(edad_min_annios,0) and ISNULL(edad_max_annios, 150)))
    ) AS t1
    WHERE rownumber BETWEEN @start_ AND @limit_
    ORDER BY 1;

    SET @cant = ( SELECT COUNT(1)
                  FROM vw_itemsPuntoDigitacion
                  WHERE (@coditem IS NULL OR cod_item LIKE '%' + @coditem + '%')
                  AND (@descitem IS NULL OR desc_item LIKE '%' + @descitem + '%')
                  AND (@tipoitem IS NULL OR fg_tipo = @tipoitem)
                  AND (@idsexo IS NULL OR (id_sexo = @idsexo OR id_sexo IS NULL))
                  AND (@edadannios IS NULL OR (@edadannios BETWEEN ISNULL(edad_min_annios,0) and ISNULL(edad_max_annios, 150)))                                                                                    
                )
  END
  ELSE
  BEGIN
   SELECT cod_item, desc_item, fg_tipo, desc_tipo_item
   FROM vw_itemsPuntoDigitacion
   WHERE (@coditem IS NULL OR cod_item LIKE '%' + @coditem + '%')
   AND (@descitem IS NULL OR desc_item LIKE '%' + @descitem + '%')
   AND (@tipoitem IS NULL OR fg_tipo = @tipoitem)
   AND (@idsexo IS NULL OR (id_sexo = @idsexo OR id_sexo IS NULL))
   AND (@edadannios IS NULL OR (@edadannios BETWEEN ISNULL(edad_min_annios,0) and ISNULL(edad_max_annios, 150)))

   SET @cant = (
     SELECT COUNT(1)
     FROM vw_itemsPuntoDigitacion
     WHERE (@coditem IS NULL OR cod_item LIKE '%' + @coditem + '%')
     AND (@descitem IS NULL OR desc_item LIKE '%' + @descitem + '%')
     AND (@tipoitem IS NULL OR fg_tipo = @tipoitem)
     AND (@idsexo IS NULL OR (id_sexo = @idsexo OR id_sexo IS NULL))
     AND (@edadannios IS NULL OR @edadannios = 0 OR (@edadannios BETWEEN ISNULL(edad_min_annios,0) and ISNULL(edad_max_annios, 150)))
   )
  END
END
GO
PRINT N'Altering [dbo].[usp_PERSONA_Update]...';


GO
---------------------------------
-- =============================================
-- Author     : Rocío Huamán Ramos
-- Description: Insertar/Modificar Persona
-- Create date: 

-- Modified by: Rocío Huamán Ramos
-- Date       : 27/05/2015
-- Version    : 2
-- Description (Motivo): Se agregó @fgrnacido y @fgreniec

-- Modified by: Mario Garay
-- Date       : 11/01/2016
-- Version    : 3
-- Description (Motivo): se agrego para que devuelva el id de persona en caso sea un nueva persona que ya se encuentra en la base de datos
-- =============================================
ALTER PROCEDURE [dbo].[usp_PERSONA_Update]
@idpersona INT OUTPUT,
@idtipodoc INT,
@numdoc varchar(15),
@nombres varchar(150),
@apelpaterno varchar(50),
@apelmaterno varchar(50),
@fechnacimiento varchar(10),
@idgenero char(1),
@idubigeonac varchar(6),
@idubigeores varchar(6),
@idubigeoresnew varchar(6),
@fotopersona varchar(110),
@descdomicilio varchar(250),
@descdomicilionew varchar(250),
@fecharegistro varchar(8),
@fechabaja varchar(8),
@fgestado int,
@sMen VARCHAR(300) OUTPUT,
@tiposangre VARCHAR(4),
@referenciadomicilio VARCHAR(500),
--@fg_datos INTEGER,
@idgradoinstruccion char(1),
@idestadocivil char(1),
@descocupacion VARCHAR(350),
@descreligion VARCHAR(350),
@fgrnacido INT,
@fgreniec INT,
@idpais VARCHAR(3)
AS BEGIN

-- Version 1
BEGIN TRY
  BEGIN TRAN

  --  @fg_datos 
  --  1 = Base de Datos
  --  2 = Reniec
  --  3 = Inforhus

  --  Para las fechas en el servidor
  DECLARE @lenguaje varchar(20),
          @fechahorareg_ varchar(17),
          @fechahorabaj_ varchar(17),
          @countpersona INT
          
  SET @lenguaje=@@language
  IF @@language != 'spanish' SET language spanish
  
  -- Cambiando la fecha de nacimiento
  IF (LEN(@fechnacimiento) = 10)
  BEGIN
    SET @fechnacimiento = CONVERT(VARCHAR,CAST(@fechnacimiento AS date),112)
  END

  -- Si persona no existe
  IF (@idpersona IS NULL)
  BEGIN
    SET @countpersona = (SELECT COUNT(1) FROM PERSONA 
                          WHERE id_tipo_doc = @idtipodoc AND num_doc = @numdoc)

    IF(@countpersona = 0)
    BEGIN

      SET @idpersona = (SELECT (contador + 1) FROM VARIABLES WHERE id_variable = 6)
      -- SET @fechahorareg_ = (SELECT @fecharegistro + ' ' + CONVERT(VARCHAR,GETDATE(),108))      

      IF(@fgestado =0)
      BEGIN
        -- SET @fechahorabaj_ = (SELECT @fechabaja + ' ' + CONVERT(VARCHAR,GETDATE(),108))
        SET @fechahorabaj_  = GETDATE();
      END
      ELSE
      BEGIN
        SET @fechahorabaj_ = NULL
      END

      INSERT INTO PERSONA (
        id_persona,
        id_tipo_doc,
        num_doc,
        nombres,
        apel_paterno,
        apel_materno,
        fech_nacimiento,
        id_genero,
        id_ubigeo_nac,
        id_ubigeo_res,
        id_ubigeo_res_new,
        foto_persona,
        desc_domicilio,
        desc_domicilio_new,
        fecha_registro,
        fecha_baja,
        fg_estado,
        tipo_sangre,
        referencia_domicilio,
        id_grado_instruccion,
        id_estado_civil,
        desc_ocupacion,
        desc_religion,
        fg_rnacido,
        fg_reniec,
        id_pais
      ) VALUES (
        @idpersona,
        @idtipodoc,
        @numdoc,
        @nombres,
        @apelpaterno,
        @apelmaterno,
        @fechnacimiento,
        @idgenero,
        @idubigeonac,
        @idubigeores,
        @idubigeoresnew,
        @fotopersona,
        @descdomicilio,
        @descdomicilionew,
        -- @fechahorareg_,
        GETDATE(),
        @fechahorabaj_,
        @fgestado,
        @tiposangre,
        @referenciadomicilio,
        --@fg_datos,
        @idgradoinstruccion,
        @idestadocivil,
        @descocupacion,
        @descreligion,
        @fgrnacido,
        @fgreniec,
        @idpais
      )

      UPDATE VARIABLES SET contador = @idpersona
      WHERE id_variable = 6
      
      SET @sMen = 'OK';

    END
    ELSE
    BEGIN

      IF @idpersona IS NULL AND @countpersona = 1
      BEGIN      
        SET @idpersona = (SELECT id_persona FROM PERSONA WHERE id_tipo_doc = @idtipodoc AND num_doc = @numdoc)
      END

      SET @sMen = 'OK'
    END
  
  END
  ELSE
  BEGIN  
    
    UPDATE PERSONA SET
      id_tipo_doc = @idtipodoc,
      num_doc = @numdoc,
      nombres = @nombres,
      apel_paterno = @apelpaterno,
      apel_materno = @apelmaterno,
      fech_nacimiento = @fechnacimiento,
      id_genero = @idgenero,
      id_ubigeo_nac = @idubigeonac,
      id_ubigeo_res = @idubigeores,
      id_ubigeo_res_new = @idubigeoresnew,
      foto_persona = @fotopersona,
      desc_domicilio = @descdomicilio,
      desc_domicilio_new = @descdomicilionew,
      fecha_baja =@fechahorabaj_,
      fg_estado =@fgestado,
      tipo_sangre = @tiposangre,
      referencia_domicilio = @referenciadomicilio,
      id_grado_instruccion = @idgradoinstruccion,
      id_estado_civil = @idestadocivil,
      desc_ocupacion = @descocupacion,
      desc_religion = @descreligion,
      id_pais = @idpais
    WHERE id_persona = @idpersona

    SET @sMen = 'OK'
  END
  
  COMMIT TRAN;

  SET language @lenguaje
  
END TRY

BEGIN CATCH
  SET @sMen = ( SELECT '*' + convert(varchar(100),ERROR_NUMBER()) + ' - ' + convert(varchar(200),ERROR_MESSAGE()));
  ROLLBACK TRAN;
END CATCH

END
GO
PRINT N'Altering [dbo].[usp_PERSONAL_PersonalUpdate]...';


GO
----------------------------------
-- =============================================
-- Author     : Rocio Huaman
-- Description: Agregar personal a la ltabla personal x establecimiento
-- Create date: 
-- Modified by: 
-- Date       : 
-- Version    : 1.0.0
-- Description: 10/02/2016 Permitir la modificacion de datos de personal sin importar la 
--              cantidad de establecimientos donde este registrado como personal
-- =============================================
ALTER PROCEDURE [dbo].[usp_PERSONAL_PersonalUpdate]
(
@idpersonal INT OUTPUT,
@idprofesion VARCHAR(2),
@numdocmed VARCHAR(20),
@fgestado INT,
@fecharegistro VARCHAR(8),
@fechabaja VARCHAR(8),
@sMen VARCHAR(300) OUTPUT,

@seccodigo varchar(2),
@iddisa int,
@idred varchar(2),
@idmicrored varchar(2),
@idestablecimiento int,
@idcondicion INT,
@idperxeess INT OUTPUT
)
AS
BEGIN
-- Version 2
BEGIN TRAN
BEGIN TRY

  DECLARE @lenguaje varchar(20),
          @idpersonalnum INT,
          @numpereess INT,
          @numotroeess INT
  
  SET @lenguaje=@@language
  IF @@language != 'spanish' SET language spanish
  
  SET @idpersonalnum = (SELECT COUNT(1) FROM PERSONAL WHERE id_personal = @idpersonal)
    
  -- Si personal no existe
  IF (@idpersonalnum = 0)
  BEGIN
    IF @fgestado = 0
    BEGIN
      SET @fechabaja = CONVERT(VARCHAR,CAST(GETDATE() AS date),112)
    END
    ELSE
    BEGIN
      SET @fechabaja = NULL
    END

    SET @fecharegistro = CONVERT(VARCHAR,CAST(GETDATE() AS date),112)

    INSERT INTO PERSONAL (
       id_personal
      ,id_profesion
      ,num_doc_med
      ,fg_estado
      ,fecha_registro
      ,fecha_baja
    ) VALUES (
       @idpersonal  -- id_personal - int
      ,@idprofesion  -- id_profesion - varchar(2)
      ,@numdocmed  -- num_doc_med - varchar(20)
      ,@fgestado   -- fg_estado - int
      ,@fecharegistro  -- fecha_registro - datetime
      ,@fechabaja  -- fecha_baja - datetime
    )
    
    IF @idpersonal > (SELECT ISNULL(contador, 0) FROM VARIABLES WHERE id_variable = 7)
    BEGIN
      UPDATE VARIABLES SET
        contador = @idpersonal -- int
      WHERE id_variable = 7 -- int
    END
    
    SET @idperxeess = (SELECT (contador + 1) FROM VARIABLES WHERE id_variable = 8)
    
    INSERT INTO PERS_X_EESS (
       id_personal
      ,id_perxeess
      ,sec_codigo
      ,id_disa
      ,id_red
      ,id_microred
      ,id_establecimiento
      ,fg_estado
      ,fecha_registro
      ,fecha_baja
      ,id_condicion
    ) VALUES (
       @idpersonal
      ,@idperxeess
      ,@seccodigo
      ,@iddisa
      ,@idred
      ,@idmicrored
      ,@idestablecimiento
      ,@fgestado
      ,@fecharegistro
      ,@fechabaja
      ,@idcondicion
    )
    
    UPDATE VARIABLES SET
      contador = @idperxeess -- int
    WHERE id_variable = 8 -- int
  END
  ELSE
  BEGIN
    DECLARE @idperxeess_in INT 
      
    SET @numpereess = ( SELECT COUNT(1)
                        FROM PERS_X_EESS
                        WHERE id_personal = @idpersonal
                          AND ISNULL(sec_codigo, 0) = ISNULL(@seccodigo, 0)
                          AND ISNULL(id_disa, 0) = ISNULL(@iddisa, 0)
                          AND ISNULL(id_red, 0) = ISNULL(@idred, 0)
                          AND ISNULL(id_microred, 0) = ISNULL(@idmicrored, 0)
                          AND ISNULL(id_establecimiento, 0) = ISNULL(@idestablecimiento, 0)
                      )
                      
    IF @numpereess > 0
    BEGIN
      SET @idperxeess_in = ( SELECT id_perxeess
                        FROM PERS_X_EESS
                        WHERE id_personal = @idpersonal
                          AND ISNULL(sec_codigo, 0) = ISNULL(@seccodigo, 0)
                          AND ISNULL(id_disa, 0) = ISNULL(@iddisa, 0)
                          AND ISNULL(id_red, 0) = ISNULL(@idred, 0)
                          AND ISNULL(id_microred, 0) = ISNULL(@idmicrored, 0)
                          AND ISNULL(id_establecimiento, 0) = ISNULL(@idestablecimiento, 0)
                      )
    END
    
    SET @numotroeess = (  SELECT COUNT(1)
                          FROM PERS_X_EESS
                          WHERE id_personal = @idpersonal
                          AND id_perxeess <> ISNULL(@idperxeess_in, 0))                         
    
    
    UPDATE PERSONAL SET
    id_profesion = @idprofesion,
       num_doc_med = @numdocmed,
       fg_estado = @fgestado
    WHERE id_personal = @idpersonal

    IF((@numpereess=1 AND @numotroeess=0) OR (@numpereess=1 AND @numotroeess=1))
    BEGIN
      /*UPDATE PERSONAL SET
        id_profesion = @idprofesion
        ,num_doc_med = @numdocmed
        ,fg_estado = @fgestado
      WHERE id_personal = @idpersonal*/

             UPDATE PERS_X_EESS SET
        fg_estado = @fgestado,
             id_condicion = @idcondicion
             WHERE id_personal = @idpersonal
        AND id_perxeess = @idperxeess_in
        -- AND id_establecimiento=@idestablecimiento

    END
    ELSE IF @numpereess = 1 AND @numotroeess > 1
    BEGIN
             UPDATE PERS_X_EESS SET
        fg_estado = @fgestado,
             id_condicion = @idcondicion
             WHERE id_personal = @idpersonal
        AND id_perxeess = @idperxeess_in
        -- AND id_establecimiento=@idestablecimiento
    END
    ELSE
    BEGIN

      SET @idperxeess = (SELECT (contador + 1) FROM VARIABLES WHERE id_variable = 8)

      IF @fgestado = 0
      BEGIN
        SET @fechabaja = CONVERT(VARCHAR,CAST(GETDATE() AS date),112)
      END
      ELSE
      BEGIN
        SET @fechabaja = NULL
      END

             INSERT INTO PERS_X_EESS (
             id_personal,
             id_perxeess,
             sec_codigo,
             id_disa,
             id_red,
             id_microred,
             id_establecimiento,
             fg_estado,
             fecha_registro,
             fecha_baja,
             id_condicion
             ) VALUES (
        @idpersonal,
             @idperxeess,
             @seccodigo,
             @iddisa,
             @idred,
             @idmicrored,
             @idestablecimiento,
             @fgestado,
             GETDATE(),
             @fechabaja,
             @idcondicion)
        
        UPDATE VARIABLES SET
          contador = @idperxeess -- int
        WHERE id_variable = 8 -- int
    END
    
       SET @idpersonal = @idpersonal;

       -- SET @idperxeess = (SELECT id_perxeess FROM PERS_X_EESS WHERE id_personal = @idpersonal AND (id_establecimiento=@idestablecimiento or @idestablecimiento is null ));
       SET @idperxeess = (SELECT id_perxeess
                        FROM PERS_X_EESS
                        WHERE id_personal = @idpersonal
                          AND ISNULL(sec_codigo, 0) = ISNULL(@seccodigo, 0)
                          AND ISNULL(id_disa, 0) = ISNULL(@iddisa, 0)
                          AND ISNULL(id_red, 0) = ISNULL(@idred, 0)
                          AND ISNULL(id_microred, 0) = ISNULL(@idmicrored, 0)
                          AND ISNULL(id_establecimiento, 0) = ISNULL(@idestablecimiento, 0)
                      )

  END
  SET @sMen = 'OK';
  COMMIT TRAN;
  
  SET language @lenguaje

END TRY

BEGIN CATCH
       SET @sMen =( SELECT '*' + convert(varchar(100),ERROR_NUMBER()) + ' - ' + convert(varchar(200),ERROR_MESSAGE()));
       ROLLBACK TRAN;
END CATCH
END
GO
PRINT N'Altering [dbo].[usp_PUNTODIGITACION_Getlist]...';


GO
-----------------------------------
ALTER PROCEDURE [dbo].[usp_PUNTODIGITACION_Getlist]
@idestablacimiento INT,
@descest varchar(50)
AS
BEGIN
  --v2
  SELECT pdd.id_establecimiento, pdd.id_punto, pdd.fg_estado,
  ve.est_nombre, ve.RED, ve.MICRORED, ve.CODUNICO, ve.SEC_CODIGO AS sec_codigo, ve.cod_disa AS id_disa, ve.cod_red AS id_red,
  ve.cod_microred AS id_microred, ve.CODUNICO AS cod_unico, 'DISA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: ' 
  + ve.DISA + '<br />RED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: '+ ve.RED 
  + '<br />MICRORED&nbsp;: ' + ve.MICRORED AS desc_redmicro
  FROM CONFIG_PUNTO_DIGITACION pd
  INNER JOIN CONFIG_PUNTO_DIGITACION_DETALLE pdd
  ON pdd.id_punto = pd.id_punto
  and pdd.fg_estado = 1
  INNER JOIN vw_establecimiento ve ON ve.id_establecimiento = pdd.id_establecimiento
  WHERE pd.id_establecimiento = @idestablacimiento --6080
  AND pd.fg_estado = 1
  --AND pd.id_disa = @iddisa AND pd.id_red = @idred
  GROUP BY ve.RED, ve.MICRORED, ve.CODUNICO, ve.SEC_CODIGO, ve.cod_disa, ve.cod_red, ve.cod_microred, ve.CODUNICO, 'DISA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: ' 
  + ve.DISA + '<br />RED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: '+ ve.RED 
  + '<br />MICRORED&nbsp;: ' + ve.MICRORED, pdd.id_establecimiento, pdd.id_punto, pdd.fg_estado, ve.est_nombre
END
GO
PRINT N'Altering [dbo].[usp_UPS_UpsGetlistxEst]...';


GO
---------------------------------------
ALTER PROCEDURE [dbo].[usp_UPS_UpsGetlistxEst]
(
@idestablecimiento int,
@idups varchar(6),
@upsdesc varchar(350),
@estado int,

@start int,
@limit int,
@cant int out,
@idflag varchar(2),
@parameter varchar(10),
@fgtipoups int
)
AS
BEGIN
DECLARE @start_ int;
  DECLARE @limit_ int;
  
  IF(ISNULL(@parameter,'0') <> '0')
  BEGIN

    SET @idups = (SELECT CASE ISNUMERIC(@parameter) WHEN 1 THEN @parameter END)
    SET @upsdesc = (SELECT CASE ISNUMERIC(@parameter) WHEN 0 THEN @parameter END)

  END
  
  IF(@idflag = 'CP')
  BEGIN

    SET @start_ = @start + 1;
    SET @limit_ = @start + @limit;

    IF(@fgtipoups=1) -- PARA QUITAR LAS UPS GENERALES '0000' Y ADMINISTRATIVAS '01','02'
    BEGIN
      SELECT t1.serv_codigo, t1.serv_descripcion, t1.es_estado,
      t1.est_codigo, t1.es_fechasusp, t1.serv_descripcionb
      FROM(
        SELECT row_number() OVER (ORDER BY es.serv_codigo) AS rownumber, es.serv_codigo, 
        es.serv_codigo + ' - ' + sv.desc_ups serv_descripcion, es.es_estado,   
        CONVERT(VARCHAR,es.est_codigo) est_codigo, es.es_fechasusp,
        '<b>' + es.serv_codigo + '</b> - ' + sv.desc_ups serv_descripcionb
        --FROM LNKPARAMONGA.renaes.renaes.TB_establecimiento_servicio AS es
        FROM ups_renaes_x_eess AS es
        --LEFT JOIN vw_ups sv ON sv.id_ups = es.serv_codigo collate Modern_Spanish_CI_AS
        LEFT JOIN ups_renaes sv ON sv.id_ups = es.serv_codigo --collate Modern_Spanish_CI_AS
        WHERE (@estado IS NULL OR es.es_estado = @estado)  
        AND (@idups IS NULL OR es.serv_codigo LIKE '%' + @idups + '%')   
        
        AND (@upsdesc IS NULL OR sv.desc_ups LIKE '%' + UPPER(@upsdesc) + '%')  
        
        AND SUBSTRING(sv.id_ups,1,2) NOT IN ('01','02')
        AND SUBSTRING(sv.id_ups,3,4) <> ('0000')
        AND sv.fg_estado = 1 AND es.est_codigo = @idestablecimiento
      ) as t1 
    	WHERE rownumber BETWEEN @start_ AND @limit_
      
      SET @cant = (
        SELECT COUNT(1)
        FROM ups_renaes_x_eess AS es
        LEFT JOIN ups_renaes sv ON sv.id_ups = es.serv_codigo
        WHERE (@estado IS NULL OR es.es_estado = @estado)   
        AND (@idups IS NULL OR es.serv_codigo LIKE '%' + @idups + '%')
        
        AND (@upsdesc IS NULL OR sv.desc_ups LIKE '%' + UPPER(@upsdesc) + '%')   
        
        AND sv.fg_estado = 1 AND es.est_codigo = @idestablecimiento
      )
    END
    ELSE IF(@fgtipoups=2) -- PARA QUE MUESTRE SÓLO LAS QUE ESTÁN PROGRAMADAS
    BEGIN
      SELECT DISTINCT(t1.id_ups) as serv_codigo, t1.desc_ups as serv_descripcion, t1.fg_estado as es_estado,
      t1.id_establecimiento as est_codigo, '' as es_fechasusp, t1.serv_descripcionb
      FROM(
        SELECT row_number() OVER (ORDER BY p.id_ups) AS rownumber, p.id_ups, vu.desc_ups collate Modern_Spanish_CI_AS desc_ups, vu.fg_estado, p.id_establecimiento, '<b>' + p.id_ups + '</b> - ' + vu.desc_ups collate Modern_Spanish_CI_AS as serv_descripcionb
        FROM PROGRAMACION p
        INNER JOIN PROGRAMACION_DET pd ON pd.id_programacion = p.id_programacion
        --INNER JOIN vw_ups vu ON (vu.id_ups collate Modern_Spanish_CI_AS = p.id_ups AND vu.fg_estado = 1)
        INNER JOIN ups_renaes vu ON (vu.id_ups collate Modern_Spanish_CI_AS = p.id_ups AND vu.fg_estado = 1)
        WHERE p.id_anio = YEAR(GETDATE()) --2015
        AND p.id_mes = MONTH(GETDATE()) --'12'
        AND pd.id_dia = DAY(GETDATE()) --'04'
        AND pd.hora > = LEFT(CONVERT(TIME, GETDATE(), 108),5) --'12:00'
        AND p.id_establecimiento = @idestablecimiento --6080
      ) as t1 
    	WHERE rownumber BETWEEN @start_ AND @limit_
      
      SET @cant = (
        SELECT COUNT(1)
        FROM (
          SELECT DISTINCT(p.id_ups) as id_ups
          FROM PROGRAMACION p
          INNER JOIN PROGRAMACION_DET pd ON pd.id_programacion = p.id_programacion
          --INNER JOIN vw_ups vu ON (vu.id_ups = p.id_ups AND vu.fg_estado = 1)
          INNER JOIN ups_renaes vu ON (vu.id_ups collate Modern_Spanish_CI_AS = p.id_ups AND vu.fg_estado = 1)
          WHERE p.id_anio = YEAR(GETDATE()) --2015
          AND p.id_mes = MONTH(GETDATE()) --'12'
          AND pd.id_dia = DAY(GETDATE()) --'04'
          AND pd.hora > = LEFT(CONVERT(TIME, GETDATE(), 108),5) --'12:00'
          AND p.id_establecimiento = @idestablecimiento --6080
        ) as tbl
      )
    END
    ELSE
    BEGIN
      SELECT t1.serv_codigo, t1.serv_descripcion, t1.es_estado,
      t1.est_codigo, t1.es_fechasusp, t1.serv_descripcionb
      FROM(
        SELECT row_number() OVER (ORDER BY es.serv_codigo) AS rownumber, es.serv_codigo, 
        es.serv_codigo + ' - ' + sv.desc_ups serv_descripcion, es.es_estado,   
        CONVERT(VARCHAR,es.est_codigo) est_codigo, es.es_fechasusp,
        '<b>' + es.serv_codigo + '</b> - ' + sv.desc_ups serv_descripcionb
        --FROM LNKPARAMONGA.renaes.renaes.TB_establecimiento_servicio AS es
        --LEFT JOIN vw_ups sv ON sv.id_ups = es.serv_codigo collate Modern_Spanish_CI_AS
        FROM ups_renaes_x_eess AS es
        LEFT JOIN ups_renaes sv ON sv.id_ups = es.serv_codigo
        WHERE (@estado IS NULL OR es.es_estado = @estado)  
        AND (@idups IS NULL OR es.serv_codigo LIKE '%' + @idups + '%')   
        
        AND (@upsdesc IS NULL OR sv.desc_ups LIKE '%' + UPPER(@upsdesc) + '%')
        
        AND sv.fg_estado = 1 AND es.est_codigo = @idestablecimiento
      ) as t1 
    	WHERE rownumber BETWEEN @start_ AND @limit_
      
      SET @cant = (
        SELECT COUNT(1)
        --FROM LNKPARAMONGA.renaes.renaes.TB_establecimiento_servicio AS es
        --LEFT JOIN vw_ups sv ON sv.id_ups = es.serv_codigo collate Modern_Spanish_CI_AS
        FROM ups_renaes_x_eess AS es
        LEFT JOIN ups_renaes sv ON sv.id_ups = es.serv_codigo
        WHERE (@estado IS NULL OR es.es_estado = @estado)   
        AND (@idups IS NULL OR es.serv_codigo LIKE '%' + @idups + '%')   
        
        AND (@upsdesc IS NULL OR sv.desc_ups LIKE '%' + UPPER(@upsdesc) + '%')   
        
        AND sv.fg_estado = 1 AND es.est_codigo = @idestablecimiento
      )
    END
  END
  ELSE
  BEGIN
    IF(@fgtipoups=1) -- PARA QUITAR LAS UPS GENERALES '0000' Y ADMINISTRATIVAS '01','02'
    BEGIN
      SELECT es.serv_codigo, 
      es.serv_codigo + ' - ' + sv.desc_ups serv_descripcion, es.es_estado,   
      CONVERT(VARCHAR,es.est_codigo) est_codigo, es.es_fechasusp,
      '<b>' + es.serv_codigo + '</b> - ' + sv.desc_ups serv_descripcionb
      --FROM LNKPARAMONGA.renaes.renaes.TB_establecimiento_servicio AS es
      --LEFT JOIN vw_ups sv ON sv.id_ups = es.serv_codigo collate Modern_Spanish_CI_AS
      FROM ups_renaes_x_eess AS es
      LEFT JOIN ups_renaes sv ON sv.id_ups = es.serv_codigo
      WHERE (@estado IS NULL OR es.es_estado = @estado)   
      AND (@idups IS NULL OR es.serv_codigo LIKE '%' + @idups + '%')   
      AND (@upsdesc IS NULL OR sv.desc_ups LIKE '%' + UPPER(@upsdesc) + '%')
      AND sv.fg_estado = 1 AND es.est_codigo = @idestablecimiento
      AND SUBSTRING(sv.id_ups,1,2) NOT IN ('01','02')
      AND SUBSTRING(sv.id_ups,3,4) <> ('0000')
    END
    ELSE IF(@fgtipoups=2) -- PARA QUE MUESTRE SÓLO LAS QUE ESTÁN PROGRAMADAS
    BEGIN
      SELECT t1.id_ups as serv_codigo, t1.desc_ups as serv_descripcion, t1.fg_estado as es_estado,
      t1.id_establecimiento as est_codigo, '' as es_fechasusp, t1.serv_descripcionb
      FROM(
        SELECT DISTINCT(p.id_ups) as id_ups, vu.desc_ups collate Modern_Spanish_CI_AS desc_ups, vu.fg_estado, p.id_establecimiento, '<b>' + p.id_ups + '</b> - ' + vu.desc_ups collate Modern_Spanish_CI_AS as serv_descripcionb
        FROM PROGRAMACION p
        INNER JOIN PROGRAMACION_DET pd ON pd.id_programacion = p.id_programacion
        --INNER JOIN vw_ups vu ON (vu.id_ups collate Modern_Spanish_CI_AS = p.id_ups AND vu.fg_estado = 1)
        INNER JOIN ups_renaes vu ON (vu.id_ups collate Modern_Spanish_CI_AS = p.id_ups AND vu.fg_estado = 1)
        WHERE p.id_anio = YEAR(GETDATE()) --2015
        AND p.id_mes = MONTH(GETDATE()) --'12'
        AND pd.id_dia = DAY(GETDATE()) --'04'
        AND pd.hora > = LEFT(CONVERT(TIME, GETDATE(), 108),5) --'12:00'
        AND p.id_establecimiento = @idestablecimiento --6080
      ) as t1
    END
    ELSE
    BEGIN
      SELECT es.serv_codigo, 
      es.serv_codigo + ' - ' + sv.desc_ups serv_descripcion, es.es_estado,   
      CONVERT(VARCHAR,es.est_codigo) est_codigo, es.es_fechasusp,
      '<b>' + es.serv_codigo + '</b> - ' + sv.desc_ups serv_descripcionb
      --FROM LNKPARAMONGA.renaes.renaes.TB_establecimiento_servicio AS es
      --LEFT JOIN vw_ups sv ON sv.id_ups = es.serv_codigo collate Modern_Spanish_CI_AS
      FROM ups_renaes_x_eess AS es
      LEFT JOIN ups_renaes sv ON sv.id_ups = es.serv_codigo --collate Modern_Spanish_CI_AS
      WHERE (@estado IS NULL OR es.es_estado = @estado)   
      
      AND (@idups IS NULL OR es.serv_codigo LIKE '%' + @idups + '%')   
      
      AND (@upsdesc IS NULL OR sv.desc_ups LIKE '%' + UPPER(@upsdesc) + '%')   
      AND sv.fg_estado = 1 AND es.est_codigo = @idestablecimiento
    END
  END
END
GO
PRINT N'Creating [dbo].[sp_ingreso_establecimiento]...';


GO
CREATE PROCEDURE [dbo].[sp_ingreso_establecimiento]
@DISA VARCHAR(500), @RED VARCHAR(500), @MICRORED VARCHAR(500)
as
begin


SELECT DISTINCT(hc.id_establecimiento), ve.est_nombre, 
(
  SELECT count(1) 
  FROM HOJA_HIS_CITA
  WHERE id_establecimiento = hc.id_establecimiento
) AS nro_hojas, ve.DISA, ve.RED, ve.MICRORED
FROM HOJA_HIS_CITA hc
INNER JOIN vw_establecimiento ve ON ve.id_establecimiento = hc.id_establecimiento
where DISA in( @DISA) AND RED in( @RED)  AND MICRORED in(@MICRORED)

end



--select  distinct(DISA)
--FROM HOJA_HIS_CITA hc
--INNER JOIN vw_establecimiento ve ON ve.id_establecimiento = hc.id_establecimiento


--select  distinct(RED)
--FROM HOJA_HIS_CITA hc
--INNER JOIN vw_establecimiento ve ON ve.id_establecimiento = hc.id_establecimiento
--WHERE DISA= @DISA


--select  DISTINCT (MICRORED)
--FROM HOJA_HIS_CITA hc
--INNER JOIN vw_establecimiento ve ON ve.id_establecimiento = hc.id_establecimiento
--WHERE DISA=@DISA AND RED=@RED
GO
PRINT N'Creating [dbo].[usp_EXPORTAR_verificarHorarioProcesoPorPuntos]...';


GO
-- AGREGANDO COLUMNAS A HOJA_HIS
-- ALTER TABLE dbo.HOJA_HIS ADD anio INT NULL, mes varchar(2) NULL, cant_registro int null ;
---------------------------------------------
-- SCRIPT PARA ACTUALIZAR EL MES Y AÑO (CAMBIAR POR NOMBRE DE BD DE PRODUCCIÓN)

----------------------------------------------
CREATE PROCEDURE [dbo].[usp_EXPORTAR_verificarHorarioProcesoPorPuntos]
AS
BEGIN
	DECLARE @horaInicial INT
  DECLARE @horaFinal INT
  DECLARE @resultado INT
  DECLARE @fechaActual DATETIME
  DECLARE @fechaInicial DATETIME
  DECLARE @fechaFinal DATETIME

	SELECT @horaInicial = int_value, @horaFinal = int_max_value
	FROM APP_PARAMETRO_CONFIGURACION 
	WHERE identificador='his1hisaxdisa'

	IF @horaInicial = 0 AND @horaFinal =0
	BEGIN
		SET @resultado = 1
	END
	ELSE
	BEGIN
		SET @fechaActual = GETDATE()
		SET @fechaInicial = @fechaActual
		SET @fechaFinal = @fechaActual

		IF @horaInicial > @horaFinal
		BEGIN
		  IF DATEPART(HOUR, @fechaActual) >=0 AND DATEPART(HOUR, @fechaActual) <= @horaFinal
		  BEGIN
		    SET @fechaInicial = DATEADD (DAY,-1, @fechaInicial)
		  END
		  ELSE
		  BEGIN
		    SET @fechaFinal = DATEADD (DAY,1, @fechaFinal)
		  END
		END

		SET @fechaInicial = CONVERT(VARCHAR, @fechaInicial, 112) + ' ' + CONVERT(VARCHAR, @horaInicial) + ':00'
		SET @fechaFinal = CONVERT(VARCHAR, @fechaFinal, 112) + ' ' + CONVERT(VARCHAR, @horaFinal) + ':00'

		IF @fechaActual >= @fechaInicial AND @fechaActual <=@fechaFinal
		  SET @resultado = 1
		ELSE
		  SET @resultado = 0
	END

	SELECT @resultado
END
GO
PRINT N'Altering [dbo].[usp_DIAGNOSTICO_ITEMSUPDATE]...';


GO
-----------------------------------
ALTER PROCEDURE [dbo].[usp_DIAGNOSTICO_ITEMSUPDATE]
@idcita int,
@caditemsCpt varchar(1000),
@caditemsPru varchar(1000),
@caditemsExa varchar(1000),
@tipoatencion varchar(2),
@idactividadhis VARCHAR(6)
AS
BEGIN
  -- IF(@caditemsCpt IS NOT NULL)
  -- BEGIN
    EXEC dbo.usp_CPT_ProcedimientoUpdate @caditemsCpt, @idcita, @tipoatencion, @idactividadhis
  -- END
  -- IF(@caditemsPru IS NOT NULL)
  -- BEGIN
    EXEC dbo.usp_PRUEBALAB_PruebalabUpdate @caditemsPru, @idcita, @tipoatencion, @idactividadhis
  -- END
  -- IF(@caditemsExa IS NOT NULL)
  -- BEGIN
    EXEC dbo.usp_EXAMAUXIL_ExamAuxilUpdate @caditemsExa, @idcita, @tipoatencion, @idactividadhis
  -- END

END
GO

CREATE PROCEDURE usp_SEG_USER_validar_usuario_activo
@p_name_user varchar(200)
AS BEGIN

  SELECT 
  COUNT(1) valido
  FROM SEG_USER 
  WHERE name_user = @p_name_user
  AND fg_activo = 1

END

GO

CREATE PROCEDURE usp_HojaHisCita_existeregistro
@p_id_establecimiento int,
@p_id_hoja_his int,
@p_id_correlativo int,
@p_message int OUTPUT
AS BEGIN

  SELECT
  @p_message = COUNT(1)
  FROM
  HOJA_HIS_CITA
  WHERE id_hoja_his = @p_id_hoja_his
  AND id_establecimiento = @p_id_establecimiento
  AND id_corr = @p_id_correlativo

END

GO

PRINT N'Refreshing [dbo].[ups_ESTABLECIMIENTO_PuntoDigitacionDetalleUpdate]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[ups_ESTABLECIMIENTO_PuntoDigitacionDetalleUpdate]';


GO
PRINT N'Refreshing [dbo].[ups_ESTABLECIMIENTO_PuntoDigitacionUpdate]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[ups_ESTABLECIMIENTO_PuntoDigitacionUpdate]';


GO
PRINT N'Refreshing [dbo].[usp_EXPORTAR_hojaHisEnvioDetalleInsert]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_EXPORTAR_hojaHisEnvioDetalleInsert]';


GO
PRINT N'Refreshing [dbo].[usp_HIS_LotexEessDelete]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_HIS_LotexEessDelete]';


GO
PRINT N'Refreshing [dbo].[usp_UTILIDAD_regenerar_numero_hoja_his]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_UTILIDAD_regenerar_numero_hoja_his]';


GO
PRINT N'Refreshing [dbo].[usp_OFFLINE_download_citas]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_OFFLINE_download_citas]';


GO
PRINT N'Refreshing [dbo].[usp_OFFLINE_download_citas_actividades]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_OFFLINE_download_citas_actividades]';


GO
PRINT N'Refreshing [dbo].[usp_OFFLINE_download_citas_cpt]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_OFFLINE_download_citas_cpt]';


GO
PRINT N'Refreshing [dbo].[usp_OFFLINE_download_citas_diagnosticos]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_OFFLINE_download_citas_diagnosticos]';


GO
PRINT N'Refreshing [dbo].[usp_OFFLINE_download_citas_examen_aux]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_OFFLINE_download_citas_examen_aux]';


GO
PRINT N'Refreshing [dbo].[usp_OFFLINE_download_citas_prueba_lab]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_OFFLINE_download_citas_prueba_lab]';


GO
PRINT N'Refreshing [dbo].[usp_OFFLINE_download_configMoneda]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_OFFLINE_download_configMoneda]';


GO
PRINT N'Refreshing [dbo].[usp_OFFLINE_download_pacientes]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_OFFLINE_download_pacientes]';


GO
PRINT N'Refreshing [dbo].[usp_OFFLINE_download_tipoCombioMoneda]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_OFFLINE_download_tipoCombioMoneda]';


GO
PRINT N'Refreshing [dbo].[usp_OFFLINE_instalacionAppGetById]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_OFFLINE_instalacionAppGetById]';


GO
PRINT N'Refreshing [dbo].[usp_OFFLINE_instalacionAppGetByIdentificador]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_OFFLINE_instalacionAppGetByIdentificador]';


GO
PRINT N'Refreshing [dbo].[usp_OFFLINE_instalacionAppListPorUbicacion]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_OFFLINE_instalacionAppListPorUbicacion]';


GO
PRINT N'Refreshing [dbo].[usp_PUNTODIGITACION_GetAllListParaExportar]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_PUNTODIGITACION_GetAllListParaExportar]';


GO
PRINT N'Refreshing [dbo].[usp_PUNTODIGITACION_GetListParaExportar]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_PUNTODIGITACION_GetListParaExportar]';


GO
PRINT N'Refreshing [dbo].[usp_PUNTOS_DIGITACION_DETALLE_Search]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_PUNTOS_DIGITACION_DETALLE_Search]';


GO
PRINT N'Refreshing [dbo].[usp_PUNTOS_DIGITACION_Search]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_PUNTOS_DIGITACION_Search]';


GO
PRINT N'Refreshing [dbo].[usp_SEGURIDAD_getUserByIdAndIdperxeess]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_SEGURIDAD_getUserByIdAndIdperxeess]';


GO
PRINT N'Refreshing [dbo].[usp_TOPICO_GetExFisico]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_TOPICO_GetExFisico]';


GO
PRINT N'Refreshing [dbo].[usp_ATENCION_atencionPagoAtenciones]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_ATENCION_atencionPagoAtenciones]';


GO
PRINT N'Refreshing [dbo].[usp_ATENCION_atencionPagoGetlist]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_ATENCION_atencionPagoGetlist]';


GO
PRINT N'Refreshing [dbo].[usp_CITA_CitaDiaUpdate]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_CITA_CitaDiaUpdate]';


GO
PRINT N'Refreshing [dbo].[usp_EXAMPROC_getbyid]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_EXAMPROC_getbyid]';


GO
PRINT N'Refreshing [dbo].[usp_HIS_HisImportarDatos]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_HIS_HisImportarDatos]';


GO
PRINT N'Refreshing [dbo].[usp_HIS_HisregistroGetlist]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_HIS_HisregistroGetlist]';


GO
PRINT N'Refreshing [dbo].[usp_PACIENTE_PacienteinfoGetbyid]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_PACIENTE_PacienteinfoGetbyid]';


GO
PRINT N'Refreshing [dbo].[usp_PACIENTE_pacienteSearch]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_PACIENTE_pacienteSearch]';


GO
PRINT N'Refreshing [dbo].[usp_PACIENTE_PacienteSearchbydocu]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_PACIENTE_PacienteSearchbydocu]';


GO
PRINT N'Refreshing [dbo].[usp_OFFLINE_download_user]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_OFFLINE_download_user]';


GO
PRINT N'Refreshing [dbo].[usp_OFFLINE_download_user_x_iduser]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_OFFLINE_download_user_x_iduser]';


GO
PRINT N'Refreshing [dbo].[usp_OFFLINE_load_user_x_eess]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_OFFLINE_load_user_x_eess]';


GO
PRINT N'Refreshing [dbo].[usp_PERSONAL_PersonalChangeState]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_PERSONAL_PersonalChangeState]';


GO
PRINT N'Refreshing [dbo].[usp_SEGURIDAD_getUserByName]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_SEGURIDAD_getUserByName]';


GO
PRINT N'Refreshing [dbo].[usp_DIAGNOSTICO_DiagCitaGetlist]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_DIAGNOSTICO_DiagCitaGetlist]';


GO
PRINT N'Refreshing [dbo].[usp_PRUEBALAB_PruebalabGetlist]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_PRUEBALAB_PruebalabGetlist]';


GO
PRINT N'Refreshing [dbo].[usp_PRUEBALAB_PruebalabUpdate]...';


GO
EXECUTE sp_refreshsqlmodule N'[dbo].[usp_PRUEBALAB_PruebalabUpdate]';


GO
PRINT N'Checking existing data against newly created constraints';


GO


GO
ALTER TABLE [dbo].[LOTE_X_EESS] WITH CHECK CHECK CONSTRAINT [LOTE_X_EESS_PERSONAL_FK];

ALTER TABLE [dbo].[ALUMNO] WITH CHECK CHECK CONSTRAINT [ALUMNO_PERSONA_FK];

ALTER TABLE [dbo].[CONSULTORIO_X_UPSPISO] WITH CHECK CHECK CONSTRAINT [consultorio_x_upspiso_con_fk1];

ALTER TABLE [dbo].[CONSULTORIO_X_UPSPISO] WITH CHECK CHECK CONSTRAINT [CONSULTORIO_X_UPSPISO_FK];


GO
PRINT N'Update complete.';


GO
