USE [eDosLocal]; GO /****** Object: StoredProcedure [dbo].[GetPersonInfo] Script Date: 8/03/2022 15:53:18 ******/ SET ANSI_NULLS ON; GO SET QUOTED_IDENTIFIER ON; GO USE [eDosLocal]; GO /****** Object: StoredProcedure [dbo].[GetPersonInfo] Script Date: 19/04/2022 13:08:50 ******/ SET ANSI_NULLS ON; GO SET QUOTED_IDENTIFIER ON; GO IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('[dbo].[PersonInfoSnapshot]') AND name='isAgent') ALTER TABLE [dbo].[PersonInfoSnapshot] ADD isAgent BIT NULL; GO ALTER PROCEDURE [dbo].[GetPersonInfo] @CSN CHAR(14) = NULL, @PersID INT = NULL, @AllowMultipleEPD BIT = 0 AS BEGIN --DECLARE @PersID INT = 12103, @CSN CHAR(14) = null,@AllowMultipleEPD BIT = 0; SET NOCOUNT ON; DECLARE @lid_station INT, @lid_visit INT; IF @PersID IS NULL SELECT @PersID = [PersID] FROM [dbo].[PersonInfoSnapshot] WHERE [CSN] = @CSN COLLATE SQL_Latin1_General_CP850_BIN; SET NOCOUNT OFF; SELECT TOP(1) @lid_station = [ID_Station], @lid_visit = [ID_Visit] FROM [dbo].[Visit] WHERE [PersID] = @PersID AND [ReturnTime] IS NULL AND [EntryTime] > DATEADD(YEAR, -1, GETDATE()); SELECT [a].[PersID], [a].[Type], [a].[CSN], [a].[FirstName], [a].[LastName], [a].[NickName], [AccessAllow] = CONVERT(BIT, CASE WHEN @AllowMultipleEPD = 1 AND [a].[hasEPD] = 1 THEN 0 ELSE [a].[AccessAllow] END), [a].[Language], [a].[MarginHP10_M], [a].[MarginHP10_Y], [a].[Margin], [a].[VisitIDLocked], [a].[ID_CommentToPerson], [a].[Comment], [a].[Deleted], [ReasonNoAccess] = CASE WHEN @AllowMultipleEPD = 1 AND [a].[hasEPD] = 1 THEN 'EPD not returned' WHEN ISNULL([VisitIDLocked], 0) > 0 THEN 'Locked because of alarm' ELSE [a].[ReasonNoAccess] END, [a].[Dose_52W_microSv], [a].[hasEPD], [activeStation] = @lid_station, [activeVisit] = @lid_visit, [a].[isAgent] FROM(SELECT [p].[PersID], [p].[Type], [p].[CSN], [p].[FirstName], [p].[LastName], [p].[NickName], [p].[AccessAllow], [p].[Language], [p].[MarginHP10_M], [p].[MarginHP10_Y], [p].[Margin], [p].[VisitIDLocked], [p].[ID_CommentToPerson], [p].[Comment], [p].[Deleted], [p].[ReasonNoAccess], [p].[Dose_52W_microSv], [hasEPD] = CONVERT(BIT, CASE WHEN @lid_visit IS NOT NULL THEN 1 ELSE 0 END), [isAgent] = CONVERT(BIT, CASE WHEN [p].[isAgent] IS NULL THEN 0 ELSE [p].[isAgent] END) FROM [dbo].[PersonInfoSnapshot] [p] WHERE [p].[PersID] = @PersID) [a]; END; go ---- Luc 2022-03-25 USE [eDosLocal] go IF SCHEMA_ID('syncloc') IS NULL BEGIN exec('CREATE SCHEMA [syncLoc]') END GO IF OBJECT_ID ('[syncLoc].[compareVisit]') IS NULL BEGIN CREATE TABLE [syncLoc].[compareVisit]( [ID_Station] [INT] NOT NULL, [ID_Visit] [INT] NOT NULL, [Inst_CODE] [INT] NOT NULL, [PersID] [INT] NULL, [ID_Task] [INT] NULL, [EntryTime] [DATETIME] NULL, [ReturnTime] [DATETIME] NULL, [Hp10Dose] [FLOAT] NULL, [Hp07Dose] [FLOAT] NULL, [Hp10Total] [FLOAT] NULL, [Hp07Total] [FLOAT] NULL, [Hp10Peak] [FLOAT] NULL, [Hp07Peak] [FLOAT] NULL, [Hp10Time] [DATETIME] NULL, [Hp07Time] [DATETIME] NULL, [ID_EPD] [INT] NULL, [QualityData] [INT] NULL, [K1] [INT] NULL, [K2] [INT] NULL, [K3] [INT] NULL, [K4] [INT] NULL, [K5] [INT] NULL, [K6] [INT] NULL, [SG] [INT] NULL, [BC] [INT] NULL, [FB] [INT] NULL, [HG] [INT] NULL, [alarmStatus] [INT] NULL, [otherAlarms] [INT] NULL, [errorStatus] [INT] NULL, [operatingStatus] [INT] NULL, [isBG] [BIT] NULL, [isComplete] [BIT] NOT NULL, [isDeleted] [BIT] NOT NULL, [isAlarm] [BIT] NOT NULL, [isAlarmCleared] [BIT] NOT NULL, [isManualExit] [BIT] NOT NULL, [ID_Station_Return] [INT] NULL, [ENTRY_EPD_CLOCK] [NUMERIC](10, 0) NULL, [EXIT_EPD_CLOCK] [NUMERIC](10, 0) NULL, [TIME_LOST] [INT] NULL, [epdID] [INT] NULL, [eDosBatteryWarning] [BIT] NULL, [eDosDose07Warning] [BIT] NULL, [eDosDose07Alarm] [BIT] NULL, [eDosRate07Warning] [BIT] NULL, [eDosRate07Alarm] [BIT] NULL, [eDosDose10Warning] [BIT] NULL, [eDosDose10Alarm] [BIT] NULL, [eDosRate10Warning] [BIT] NULL, [eDosRate10Alarm] [BIT] NULL, CONSTRAINT [PK_compareVisit] PRIMARY KEY CLUSTERED ( [ID_Station] ASC, [ID_Visit] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]; GRANT ALTER, INSERT, UPDATE, DELETE, SELECT ON [syncLoc].[compareVisit] TO [edosStation]; END; GO IF NOT EXISTS (SELECT * FROM [sys].[columns] WHERE [object_id] = OBJECT_ID('[syncLoc].[compareVisit]') AND [name] = 'eDosBatteryWarning')BEGIN ALTER TABLE [syncLoc].[compareVisit] ADD [eDosBatteryWarning] BIT NULL; ALTER TABLE [syncLoc].[compareVisit] ADD [eDosDose07Warning] BIT NULL; ALTER TABLE [syncLoc].[compareVisit] ADD [eDosDose07Alarm] BIT NULL; ALTER TABLE [syncLoc].[compareVisit] ADD [eDosRate07Warning] BIT NULL; ALTER TABLE [syncLoc].[compareVisit] ADD [eDosRate07Alarm] BIT NULL; ALTER TABLE [syncLoc].[compareVisit] ADD [eDosDose10Warning] BIT NULL; ALTER TABLE [syncLoc].[compareVisit] ADD [eDosDose10Alarm] BIT NULL; ALTER TABLE [syncLoc].[compareVisit] ADD [eDosRate10Warning] BIT NULL; ALTER TABLE [syncLoc].[compareVisit] ADD [eDosRate10Alarm] BIT NULL; END; GO ALTER PROCEDURE [syncLoc].[UpdateRemoteReturns] @ID_LocalStation INT = NULL, @pcnr VARCHAR(20) = NULL AS BEGIN -- Luc 2022-03-25 --DECLARE @ID_LocalStation INT = 9; --DECLARE @pcnr VARCHAR(20); IF @pcnr = 'EDOS-SCH' SET @pcnr = 'EDOS-WSCH'; ELSE IF @pcnr = 'DESKTOP-CCDL4A3' SET @pcnr = 'EDOS-LNK'; ELSE IF @pcnr = 'EDOS-ZZZ' SET @pcnr = 'EDOS-LSCH'; IF @ID_LocalStation IS NULL BEGIN IF @pcnr IS NULL SET @pcnr = @@serverName; IF @pcnr = 'EDOS-SCH' SET @pcnr = 'EDOS-WSCH'; ELSE IF @pcnr = 'DESKTOP-CCDL4A3' SET @pcnr = 'EDOS-LNK'; ELSE IF @pcnr = 'EDOS-ZZZ' SET @pcnr = 'EDOS-LSCH'; SELECT @ID_LocalStation = [ID_Station] FROM [dbo].[StationSettings] WHERE [PCNr] = @pcnr; END; SELECT @ID_LocalStation, [PCNr] FROM [dbo].[StationSettings] WHERE [ID_Station] = @ID_LocalStation; TRUNCATE TABLE [syncLoc].[compareVisit]; INSERT [syncLoc].[compareVisit]([ID_Station], [ID_Visit], [Inst_CODE], [PersID], [ID_Task], [EntryTime], [ReturnTime], [Hp10Dose], [Hp07Dose], [Hp10Total], [Hp07Total], [Hp10Peak], [Hp07Peak], [Hp10Time], [Hp07Time], [ID_EPD], [QualityData], [K1], [K2], [K3], [K4], [K5], [K6], [SG], [BC], [FB], [HG], [alarmStatus], [otherAlarms], [errorStatus], [operatingStatus], [isBG], [isComplete], [isDeleted], [isAlarm], [isAlarmCleared], [isManualExit], [ID_Station_Return], [ENTRY_EPD_CLOCK], [EXIT_EPD_CLOCK], [TIME_LOST], [epdID], [eDosBatteryWarning], [eDosDose07Warning], [eDosDose07Alarm], [eDosRate07Warning], [eDosRate07Alarm], [eDosDose10Warning], [eDosDose10Alarm], [eDosRate10Warning], [eDosRate10Alarm]) SELECT [v].[ID_Station], [v].[ID_Visit], [v].[Inst_CODE], [v].[PersID], [v].[ID_Task], [v].[EntryTime], [v].[ReturnTime], [v].[Hp10Dose], [v].[Hp07Dose], [v].[Hp10Total], [v].[Hp07Total], [v].[Hp10Peak], [v].[Hp07Peak], [v].[Hp10Time], [v].[Hp07Time], [v].[ID_EPD], [v].[QualityData], [v].[K1], [v].[K2], [v].[K3], [v].[K4], [v].[K5], [v].[K6], [v].[SG], [v].[BC], [v].[FB], [v].[HG], [v].[alarmStatus], [v].[otherAlarms], [v].[errorStatus], [v].[operatingStatus], [v].[isBG], [v].[isComplete], [v].[isDeleted], [v].[isAlarm], [v].[isAlarmCleared], [v].[isManualExit], [v].[ID_Station_Return], [v].[ENTRY_EPD_CLOCK], [v].[EXIT_EPD_CLOCK], [v].[TIME_LOST], [v].[epdID], [v].[eDosBatteryWarning], [v].[eDosDose07Warning], [v].[eDosDose07Alarm], [v].[eDosRate07Warning], [v].[eDosRate07Alarm], [v].[eDosDose10Warning], [v].[eDosDose10Alarm], [v].[eDosRate10Warning], [v].[eDosRate10Alarm] FROM [EDOS].[edos].[dbo].[Visit] [v] INNER JOIN(SELECT [ID_Visit] FROM [dbo].[Visit] WHERE [ID_Station] = @ID_LocalStation AND [ReturnTime] IS NULL) [i] ON [i].[ID_Visit] = [v].[ID_Visit] WHERE [v].[ID_Station] = @ID_LocalStation AND [v].[ReturnTime] IS NOT NULL; UPDATE [dbo].[Visit] SET [ReturnTime] = [c].[ReturnTime], [Hp10Dose] = [c].[Hp10Dose], [Hp07Dose] = [c].[Hp07Dose], [Hp10Total] = [c].[Hp10Total], [Hp07Total] = [c].[Hp07Total], [Hp10Peak] = [c].[Hp10Peak], [Hp07Peak] = [c].[Hp07Peak], [Hp10Time] = [c].[Hp10Time], [Hp07Time] = [c].[Hp07Time], [QualityData] = [c].[QualityData], [K1] = [c].[K1], [K2] = [c].[K2], [K3] = [c].[K3], [K4] = [c].[K4], [K5] = [c].[K5], [K6] = [c].[K6], [SG] = [c].[SG], [BC] = [c].[BC], [FB] = [c].[FB], [HG] = [c].[HG], [alarmStatus] = [c].[alarmStatus], [otherAlarms] = [c].[otherAlarms], [errorStatus] = [c].[errorStatus], [operatingStatus] = [c].[operatingStatus], [isComplete] = [c].[isComplete], [isDeleted] = [c].[isDeleted], [isAlarm] = [c].[isAlarm], [isAlarmCleared] = [c].[isAlarmCleared], [isManualExit] = CASE WHEN [v].[isManualExit] IS NULL OR [c].[isManualExit] = 1 THEN [c].[isManualExit] ELSE [v].[isManualExit] END, [ID_Station_Return] = ISNULL([c].[ID_Station_Return], [v].[ID_Station_Return]), [EXIT_EPD_CLOCK] = [c].[EXIT_EPD_CLOCK], [eDosBatteryWarning] = CASE WHEN [v].[eDosBatteryWarning] IS NULL OR [c].[eDosBatteryWarning] = 1 THEN [c].[eDosBatteryWarning] ELSE [v].[eDosBatteryWarning] END, [eDosDose07Warning] = CASE WHEN [v].[eDosDose07Warning] IS NULL OR [c].[eDosDose07Warning] = 1 THEN [c].[eDosDose07Warning] ELSE [v].[eDosDose07Warning] END, [eDosDose07Alarm] = CASE WHEN [v].[eDosDose07Alarm] IS NULL OR [c].[eDosDose07Alarm] = 1 THEN [c].[eDosDose07Alarm] ELSE [v].[eDosDose07Alarm] END, [eDosRate07Warning] = CASE WHEN [v].[eDosRate07Warning] IS NULL OR [c].[eDosRate07Warning] = 1 THEN [c].[eDosRate07Warning] ELSE [v].[eDosRate07Warning] END, [eDosRate07Alarm] = CASE WHEN [v].[eDosRate07Alarm] IS NULL OR [c].[eDosRate07Alarm] = 1 THEN [c].[eDosRate07Alarm] ELSE [v].[eDosRate07Alarm] END, [eDosDose10Warning] = CASE WHEN [v].[eDosDose10Warning] IS NULL OR [c].[eDosDose10Warning] = 1 THEN [c].[eDosDose10Warning] ELSE [v].[eDosDose10Warning] END, [eDosDose10Alarm] = CASE WHEN [v].[eDosDose10Alarm] IS NULL OR [c].[eDosDose10Alarm] = 1 THEN [c].[eDosDose10Alarm] ELSE [v].[eDosDose10Alarm] END, [eDosRate10Warning] = CASE WHEN [v].[eDosRate10Warning] IS NULL OR [c].[eDosRate10Warning] = 1 THEN [c].[eDosRate10Warning] ELSE [v].[eDosRate10Warning] END, [eDosRate10Alarm] = CASE WHEN [v].[eDosRate10Alarm] IS NULL OR [c].[eDosRate10Alarm] = 1 THEN [c].[eDosRate10Alarm] ELSE [v].[eDosRate10Alarm] END FROM [dbo].[Visit] [v] INNER JOIN [syncLoc].[compareVisit] [c] ON [c].[ID_Station] = [v].[ID_Station] AND [c].[ID_Visit] = [v].[ID_Visit] WHERE [v].[ReturnTime] IS NULL AND [v].[isComplete] = 0; END; GO GRANT EXECUTE ON [syncLoc].[UpdateRemoteReturns] TO [eDosStation]; GO