diff --git a/eDosLocal/UpdateLocal.sql b/eDosLocal/UpdateLocal.sql
index a7bc417..eaed41c 100644
--- a/eDosLocal/UpdateLocal.sql
+++ b/eDosLocal/UpdateLocal.sql
@@ -1,340 +1,288 @@
-USE [eDosLocal];
-GO
-
-/****** Object: StoredProcedure [dbo].[VisitExit] Script Date: 11/04/2022 14:31:28 ******/
-SET ANSI_NULLS ON;
-GO
-
-SET QUOTED_IDENTIFIER ON;
-GO
-
-IF NOT EXISTS (SELECT * FROM sys.columns WHERE OBJECT_ID=OBJECT_ID('dbo.visit') AND name='eDosBatteryWarning')
-begin
-ALTER TABLE [dbo].[Visit] ADD eDosBatteryWarning BIT null;
-ALTER TABLE [dbo].[Visit] ADD eDosDose07Warning BIT null;
-ALTER TABLE [dbo].[Visit] ADD eDosDose07Alarm BIT null;
-ALTER TABLE [dbo].[Visit] ADD eDosRate07Warning BIT null;
-ALTER TABLE [dbo].[Visit] ADD eDosRate07Alarm BIT null;
-ALTER TABLE [dbo].[Visit] ADD eDosDose10Warning BIT null;
-ALTER TABLE [dbo].[Visit] ADD eDosDose10Alarm BIT null;
-ALTER TABLE [dbo].[Visit] ADD eDosRate10Warning BIT null;
-ALTER TABLE [dbo].[Visit] ADD eDosRate10Alarm BIT null;
-END
-GO
-
-ALTER PROCEDURE [dbo].[VisitExit]
- @EPDVisitID INT,
- @HP07 FLOAT,
- @HP10 FLOAT,
- @HP07Peak FLOAT,
- @HP10Peak FLOAT,
- @HP07PeakTime DATETIME = NULL,
- @HP10PeakTime DATETIME = NULL,
- @HP07Total FLOAT,
- @HP10Total FLOAT,
- @K1 INT,
- @K2 INT,
- @K3 INT,
- @K4 INT,
- @K5 INT = NULL,
- @K6 INT = NULL,
- @SG INT,
- @BC INT,
- @FB INT,
- @HG INT,
- @QualityData INT,
- @alarmStatus INT,
- @otherAlarms INT,
- @errorStatus INT,
- @operatingStatus INT,
- @ENTRY_EPD_CLOCK DECIMAL(10, 0) NULL,
- @EXIT_EPD_CLOCK DECIMAL(10, 0) NULL,
- @PersID 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
-AS
-DECLARE @ID_Visit INT,
- @ID_Station INT,
- @ID_Station_Return INT;
-
-SET @ID_Station = @EPDVisitID % 100;
-SET @ID_Visit = @EPDVisitID / 100;
-
-IF @ID_Station_Return IS NULL
- SELECT @ID_Station_Return = [ID_Station]
- FROM [dbo].[StationSettings]
- WHERE [PCNr] = HOST_NAME ();
-
-DECLARE @isComplete BIT = 1;
-
-IF NOT EXISTS
-(
- SELECT *
- FROM [dbo].[Visit]
- WHERE [ID_Visit] = @ID_Visit
- AND [ID_Station] = @ID_Station
-)
-BEGIN
- SET @isComplete = 0;
-
- INSERT [dbo].[Visit]
- (
- [ID_Station],
- [ID_Visit],
- [Inst_CODE],
- [isManualExit],
- [isDeleted],
- [ID_Station_Return],
- [isComplete],
- [ENTRY_EPD_CLOCK],
- [PersID]
- )
- VALUES
- (@ID_Station, @ID_Visit, 0, 0, 0, @ID_Station_Return, 0, @ENTRY_EPD_CLOCK, @PersID);
-END;
-
-UPDATE [dbo].[Visit]
-SET [Hp07Dose] = @HP07,
- [Hp10Dose] = @HP10,
- [isComplete] = @isComplete,
- [ReturnTime] = GETDATE (),
- [Hp07Peak] = @HP07Peak,
- [Hp10Peak] = @HP10Peak,
- [Hp07Time] = @HP07PeakTime,
- [Hp10Time] = @HP10PeakTime,
- [Hp07Total] = @HP07Total,
- [Hp10Total] = @HP10Total,
- [K1] = @K1,
- [K2] = @K2,
- [K3] = @K3,
- [K4] = @K4,
- [K5] = @K5,
- [K6] = @K6,
- [SG] = @SG,
- [BC] = @BC,
- [FB] = @FB,
- [HG] = @HG,
- [QualityData] = @QualityData,
- [alarmStatus] = @alarmStatus,
- [otherAlarms] = @otherAlarms,
- [errorStatus] = @errorStatus,
- [operatingStatus] = @operatingStatus,
- --[D1] = @D1, [D2] = @D2, [D3] = @D3, [D4] = @D4,
- [isAlarm] = CASE
- WHEN ISNULL (@alarmStatus, 0) <> 0 THEN
- 1
- ELSE
- 0
- END,
- [isManualExit] = 0,
- [ID_Station_Return] = @ID_Station_Return,
- [ENTRY_EPD_CLOCK] = @ENTRY_EPD_CLOCK,
- [EXIT_EPD_CLOCK] = @EXIT_EPD_CLOCK,
- [PersID] = CASE
- WHEN [PersID] IS NULL THEN
- @PersID
- ELSE
- [PersID]
- END,
- eDosBatteryWarning= @eDosBatteryWarning,
- eDosDose07Warning = @eDosDose07Warning ,
- eDosDose07Alarm=@eDosDose07Alarm,
- eDosRate07Warning=@eDosRate07Warning,
- eDosRate07Alarm=@eDosRate07Alarm,
- eDosDose10Warning=@eDosDose10Warning,
- eDosDose10Alarm=@eDosDose10Alarm,
- eDosRate10Warning=@eDosRate10Warning,
- eDosRate10Alarm=@eDosRate10Alarm
-WHERE [ID_Visit] = @ID_Visit
- AND [ID_Station] = @ID_Station;
-
--- local- >PersonInfoSnapshot
-IF ISNULL (@alarmStatus, 0) <> 0
- OR ISNULL(@eDosDose07Alarm,0)<>0
- OR ISNULL(@eDosRate07Alarm,0)<>0
- OR ISNULL(@eDosDose10Alarm,0)<>0
- OR ISNULL(@eDosRate10Alarm,0)<>0
-BEGIN
- UPDATE [dbo].[PersonInfoSnapshot]
- SET [VisitIDLocked] = @ID_Visit * 100 + @ID_Station
- WHERE [PersID] =
- (
- SELECT [PersID]
- FROM [dbo].[Visit]
- WHERE [ID_Visit] = @ID_Visit
- AND @ID_Station = @ID_Station
- );
-END;
-
-GO
-ALTER PROCEDURE [export].[VisitsSelect]
-AS
-SELECT [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],
- [VisitStatus] = CONVERT ( TINYINT,
- CASE
- WHEN [EntryTime] IS NOT NULL
- AND [ReturnTime] IS NOT NULL THEN
- 3
- WHEN [EntryTime] IS NOT NULL THEN
- 1
- WHEN [ReturnTime] IS NOT NULL THEN
- 2
- ELSE
- 0
- END
- ),
- [syncedEntry],
- [syncedExit],
- [epdType],
- [eDosBatteryWarning],
- [eDosDose07Warning],
- [eDosDose07Alarm],
- [eDosRate07Warning],
- [eDosRate07Alarm],
- [eDosDose10Warning],
- [eDosDose10Alarm],
- [eDosRate10Warning],
- [eDosRate10Alarm]
-FROM [dbo].[Visit]
-WHERE (
- [syncedEntry] = 0
- OR [syncedExit] = 0
- );
-GO
-
-ALTER TABLE [dbo].[StationSettings] ADD [RestartComFirst] BIT;
-ALTER TABLE [dbo].[StationSettings] ADD [OnlyMK2] BIT;
-GO
-
-ALTER PROCEDURE [dbo].[StationSettingsSelect]
-AS
-SELECT [ID_Station],
- [PCNr],
- [ComPort],
- [Inst_CODE1],
- [Inst_CODE2],
- [Inst_Name1],
- [Inst_Name2],
- [TestCSN],
- [Reader],
- [useTestButtons] = ISNULL ([useTestButtons], 0),
- [useBeep] = ISNULL ([useBeep], 22),
- [checkUser] = ISNULL ([checkUser], 0),
- [EPDTimeout] = ISNULL ([EPDTimeout], 10000),
- [EPDRetries] = ISNULL ([EPDREtries], 1),
- [RestartCom] = ISNULL ([RestartCom], 0),
- [RestartComFirst] = ISNULL ([RestartComFirst], 0),
- [OnlyMK2] = ISNULL ([OnlyMK2], 0)
-FROM [dbo].[StationSettings]
-WHERE [PCNr] = HOST_NAME ();
-GO
-
-ALTER PROCEDURE [dbo].[StationSettingsUpdate]
- @ComPort INT = NULL,
- @Inst_CODE1 INT = NULL,
- @Inst_CODE2 INT = NULL,
- @Inst_Name1 VARCHAR(50) = NULL,
- @Inst_Name2 VARCHAR(50) = NULL,
- @TestCSN VARCHAR(50) = NULL,
- @Reader VARCHAR(70) = NULL,
- @useTestButtons BIT = 0,
- @useBeep TINYINT = 22,
- @checkUser BIT = 0,
- @EPDTimeout INT = 10000,
- @EPDRetries INT = 1,
- @RestartCom BIT = 0,
- @RestartComFirst BIT = 0,
- @OnlyMK2 BIT = 0
-AS
-IF NOT EXISTS
-(
- SELECT *
- FROM [dbo].[StationSettings]
- WHERE [PCNr] = HOST_NAME ()
-)
- INSERT [dbo].[StationSettings]
- (
- [PCNr],
- [ComPort],
- [Inst_CODE1],
- [Inst_CODE2],
- [Inst_Name1],
- [Inst_Name2],
- [TestCSN],
- [Reader],
- [useTestButtons],
- [useBeep],
- [checkUser],
- [EPDREtries],
- [RestartCom],
- [RestartComFirst],
- [OnlyMK2]
- )
- VALUES
- (HOST_NAME (), @ComPort, @Inst_CODE1, @Inst_CODE2, @Inst_Name1, @Inst_Name2, @TestCSN, @Reader, @useTestButtons,
- @useBeep, @checkUser, @EPDRetries, @RestartCom, @RestartComFirst, @OnlyMK2);
-ELSE
- UPDATE [dbo].[StationSettings]
- SET [ComPort] = @ComPort,
- [Inst_CODE1] = @Inst_CODE1,
- [Inst_CODE2] = @Inst_CODE2,
- [Inst_Name1] = @Inst_Name1,
- [Inst_Name2] = @Inst_Name2,
- [TestCSN] = @TestCSN,
- [Reader] = @Reader,
- [useTestButtons] = @useTestButtons,
- [useBeep] = @useBeep,
- [checkUser] = @checkUser,
- [EPDTimeout] = @EPDTimeout,
- [EPDREtries] = @EPDRetries,
- [RestartCom] = @RestartCom,
- [RestartComFirst] = @RestartComFirst,
- [OnlyMK2] = @OnlyMK2
- WHERE [PCNr] = HOST_NAME ();
+USE [eDosLocal];
+GO
+SET ANSI_NULLS ON;
+GO
+SET QUOTED_IDENTIFIER ON;
+GO
+
+IF NOT EXISTS (SELECT * FROM sys.columns WHERE OBJECT_ID=OBJECT_ID('dbo.visit') AND name='eDosBatteryWarning')
+begin
+ALTER TABLE [dbo].[Visit] ADD eDosBatteryWarning BIT null;
+ALTER TABLE [dbo].[Visit] ADD eDosDose07Warning BIT null;
+ALTER TABLE [dbo].[Visit] ADD eDosDose07Alarm BIT null;
+ALTER TABLE [dbo].[Visit] ADD eDosRate07Warning BIT null;
+ALTER TABLE [dbo].[Visit] ADD eDosRate07Alarm BIT null;
+ALTER TABLE [dbo].[Visit] ADD eDosDose10Warning BIT null;
+ALTER TABLE [dbo].[Visit] ADD eDosDose10Alarm BIT null;
+ALTER TABLE [dbo].[Visit] ADD eDosRate10Warning BIT null;
+ALTER TABLE [dbo].[Visit] ADD eDosRate10Alarm BIT null;
+END
+GO
+ALTER PROCEDURE [dbo].[VisitExit] @EPDVisitID INT,
+ @HP07 FLOAT,
+ @HP10 FLOAT,
+ @HP07Peak FLOAT,
+ @HP10Peak FLOAT,
+ @HP07PeakTime DATETIME = NULL,
+ @HP10PeakTime DATETIME = NULL,
+ @HP07Total FLOAT,
+ @HP10Total FLOAT,
+ @K1 INT,
+ @K2 INT,
+ @K3 INT,
+ @K4 INT,
+ @K5 INT = NULL,
+ @K6 INT = NULL,
+ @SG INT,
+ @BC INT,
+ @FB INT,
+ @HG INT,
+ @QualityData INT,
+ @alarmStatus INT,
+ @otherAlarms INT,
+ @errorStatus INT,
+ @operatingStatus INT,
+ @ENTRY_EPD_CLOCK DECIMAL(10, 0) NULL,
+ @EXIT_EPD_CLOCK DECIMAL(10, 0) NULL,
+ @PersID 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
+AS
+DECLARE
+ @ID_Visit INT,
+ @ID_Station INT,
+ @ID_Station_Return INT;
+
+SET @ID_Station = @EPDVisitID % 100;
+SET @ID_Visit = @EPDVisitID / 100;
+
+IF @ID_Station_Return IS NULL
+ SELECT
+ @ID_Station_Return = [ID_Station]
+ FROM [dbo].[StationSettings]
+ WHERE [PCNr] = HOST_NAME();
+
+DECLARE @isComplete BIT = 1;
+
+IF NOT EXISTS (SELECT
+ *
+ FROM [dbo].[Visit]
+ WHERE [ID_Visit] = @ID_Visit
+ AND [ID_Station] = @ID_Station)BEGIN
+ SET @isComplete = 0;
+
+ INSERT [dbo].[Visit]([ID_Station], [ID_Visit], [Inst_CODE], [isManualExit], [isDeleted], [ID_Station_Return], [isComplete], [ENTRY_EPD_CLOCK], [PersID])
+ VALUES(@ID_Station, @ID_Visit, 0, 0, 0, @ID_Station_Return, 0, @ENTRY_EPD_CLOCK, @PersID);
+END;
+
+UPDATE
+ [dbo].[Visit]
+SET
+ [Hp07Dose] = @HP07,
+ [Hp10Dose] = @HP10,
+ [isComplete] = @isComplete,
+ [ReturnTime] = GETDATE(),
+ [Hp07Peak] = @HP07Peak,
+ [Hp10Peak] = @HP10Peak,
+ [Hp07Time] = @HP07PeakTime,
+ [Hp10Time] = @HP10PeakTime,
+ [Hp07Total] = @HP07Total,
+ [Hp10Total] = @HP10Total,
+ [K1] = @K1,
+ [K2] = @K2,
+ [K3] = @K3,
+ [K4] = @K4,
+ [K5] = @K5,
+ [K6] = @K6,
+ [SG] = @SG,
+ [BC] = @BC,
+ [FB] = @FB,
+ [HG] = @HG,
+ [QualityData] = @QualityData,
+ [alarmStatus] = @alarmStatus,
+ [otherAlarms] = @otherAlarms,
+ [errorStatus] = @errorStatus,
+ [operatingStatus] = @operatingStatus,
+ --[D1] = @D1, [D2] = @D2, [D3] = @D3, [D4] = @D4,
+ [isAlarm] = CASE WHEN ISNULL(@alarmStatus, 0) <> 0 THEN 1 ELSE 0 END,
+ [isManualExit] = 0,
+ [ID_Station_Return] = @ID_Station_Return,
+ [ENTRY_EPD_CLOCK] = @ENTRY_EPD_CLOCK,
+ [EXIT_EPD_CLOCK] = @EXIT_EPD_CLOCK,
+ [PersID] = CASE WHEN [PersID] IS NULL THEN @PersID ELSE [PersID] END,
+ [eDosBatteryWarning] = @eDosBatteryWarning,
+ [eDosDose07Warning] = @eDosDose07Warning,
+ [eDosDose07Alarm] = @eDosDose07Alarm,
+ [eDosRate07Warning] = @eDosRate07Warning,
+ [eDosRate07Alarm] = @eDosRate07Alarm,
+ [eDosDose10Warning] = @eDosDose10Warning,
+ [eDosDose10Alarm] = @eDosDose10Alarm,
+ [eDosRate10Warning] = @eDosRate10Warning,
+ [eDosRate10Alarm] = @eDosRate10Alarm
+WHERE [ID_Visit] = @ID_Visit
+ AND [ID_Station] = @ID_Station;
+
+-- local- >PersonInfoSnapshot
+IF ISNULL(@alarmStatus, 0) <> 0
+ OR ISNULL(@eDosDose07Alarm, 0) <> 0
+ OR ISNULL(@eDosRate07Alarm, 0) <> 0
+ OR ISNULL(@eDosDose10Alarm, 0) <> 0
+ OR ISNULL(@eDosRate10Alarm, 0) <> 0 BEGIN
+ UPDATE
+ [dbo].[PersonInfoSnapshot]
+ SET
+ [VisitIDLocked] = @ID_Visit * 100 + @ID_Station
+ WHERE [PersID] = (SELECT
+ [PersID]
+ FROM [dbo].[Visit]
+ WHERE [ID_Visit] = @ID_Visit
+ AND @ID_Station = @ID_Station);
+END;
+GO
+ALTER PROCEDURE [export].[VisitsSelect]
+AS
+SELECT
+ [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],
+ [VisitStatus] = CONVERT(TINYINT, CASE WHEN [EntryTime] IS NOT NULL
+ AND [ReturnTime] IS NOT NULL THEN 3
+ WHEN [EntryTime] IS NOT NULL THEN 1
+ WHEN [ReturnTime] IS NOT NULL THEN 2 ELSE 0 END),
+ [syncedEntry],
+ [syncedExit],
+ [epdType],
+ [epdID],
+ [eDosBatteryWarning],
+ [eDosDose07Warning],
+ [eDosDose07Alarm],
+ [eDosRate07Warning],
+ [eDosRate07Alarm],
+ [eDosDose10Warning],
+ [eDosDose10Alarm],
+ [eDosRate10Warning],
+ [eDosRate10Alarm]
+FROM [dbo].[Visit]
+WHERE([syncedEntry] = 0 OR [syncedExit] = 0);
+GO
+IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('[dbo].[StationSettings]') AND name='RestartComFirst')
+begin
+ALTER TABLE [dbo].[StationSettings] ADD [RestartComFirst] BIT;
+ALTER TABLE [dbo].[StationSettings] ADD [OnlyMK2] BIT;
+END
+GO
+IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('[dbo].[StationSettings]') AND name='AllowMultipleEPD')
+ALTER TABLE [dbo].[StationSettings] ADD AllowMultipleEPD BIT NULL;
+IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('[dbo].[StationSettings]') AND name='EPDRetries')
+ALTER TABLE [dbo].[StationSettings] ADD EPDRetries BIT NULL;
+GO
+ALTER PROCEDURE [dbo].[StationSettingsSelect] AS
+SELECT
+ [ID_Station],
+ [PCNr],
+ [ComPort],
+ [Inst_CODE1],
+ [Inst_CODE2],
+ [Inst_Name1],
+ [Inst_Name2],
+ [TestCSN],
+ [Reader],
+ [useTestButtons] = ISNULL([useTestButtons], 0),
+ [useBeep] = ISNULL([useBeep], 22),
+ [checkUser] = ISNULL([checkUser], 0),
+ [EPDTimeout] = ISNULL([EPDTimeout], 10000),
+ [EPDRetries] = ISNULL([EPDREtries], 1),
+ [RestartCom] = ISNULL([RestartCom], 0),
+ [RestartComFirst] = ISNULL([RestartComFirst], 0),
+ [OnlyMK2] = ISNULL([OnlyMK2], 0),
+ [AllowMultipleEPD] = ISNULL([AllowMultipleEPD], 0)
+FROM [dbo].[StationSettings]
+WHERE [PCNr] = HOST_NAME();
+GO
+ALTER PROCEDURE [dbo].[StationSettingsUpdate] @ComPort INT = NULL,
+ @Inst_CODE1 INT = NULL,
+ @Inst_CODE2 INT = NULL,
+ @Inst_Name1 VARCHAR(50) = NULL,
+ @Inst_Name2 VARCHAR(50) = NULL,
+ @TestCSN VARCHAR(50) = NULL,
+ @Reader VARCHAR(70) = NULL,
+ @useTestButtons BIT = 0,
+ @useBeep TINYINT = 22,
+ @checkUser BIT = 0,
+ @EPDTimeout INT = 10000,
+ @EPDRetries INT = 1,
+ @RestartCom BIT = 0,
+ @RestartComFirst BIT = 0,
+ @OnlyMK2 BIT = 0,
+ @AllowMultipleEPD BIT = 0
+AS
+IF NOT EXISTS (SELECT * FROM [dbo].[StationSettings] WHERE [PCNr] = HOST_NAME())
+ INSERT [dbo].[StationSettings]([PCNr], [ComPort], [Inst_CODE1], [Inst_CODE2], [Inst_Name1], [Inst_Name2], [TestCSN], [Reader], [useTestButtons], [useBeep], [checkUser], [EPDREtries], [RestartCom], [RestartComFirst], [OnlyMK2], [AllowMultipleEPD])
+ VALUES(HOST_NAME(), @ComPort, @Inst_CODE1, @Inst_CODE2, @Inst_Name1, @Inst_Name2, @TestCSN, @Reader, @useTestButtons, @useBeep, @checkUser, @EPDRetries, @RestartCom, @RestartComFirst, @OnlyMK2, @AllowMultipleEPD);
+ELSE
+ UPDATE
+ [dbo].[StationSettings]
+ SET
+ [ComPort] = @ComPort,
+ [Inst_CODE1] = @Inst_CODE1,
+ [Inst_CODE2] = @Inst_CODE2,
+ [Inst_Name1] = @Inst_Name1,
+ [Inst_Name2] = @Inst_Name2,
+ [TestCSN] = @TestCSN,
+ [Reader] = @Reader,
+ [useTestButtons] = @useTestButtons,
+ [useBeep] = @useBeep,
+ [checkUser] = @checkUser,
+ [EPDTimeout] = @EPDTimeout,
+ [EPDREtries] = @EPDRetries,
+ [RestartCom] = @RestartCom,
+ [RestartComFirst] = @RestartComFirst,
+ [OnlyMK2] = @OnlyMK2,
+ [AllowMultipleEPD]=@AllowMultipleEPD
+ WHERE [PCNr] = HOST_NAME();
+go
diff --git a/eDosLocal/Updates.sql b/eDosLocal/Updates.sql
index ad10176..4de6213 100644
--- a/eDosLocal/Updates.sql
+++ b/eDosLocal/Updates.sql
@@ -1,362 +1,328 @@
-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
-
-IF NOT EXISTS
-(
- SELECT *
- FROM [INFORMATION_SCHEMA].[COLUMNS]
- WHERE [TABLE_NAME] = 'StationSettings'
- AND [COLUMN_NAME] = 'EPDRetries'
-)
- ALTER TABLE [dbo].[StationSettings] ADD [EPDRetries] INT;
-
-IF NOT EXISTS
-(
- SELECT *
- FROM [INFORMATION_SCHEMA].[COLUMNS]
- WHERE [TABLE_NAME] = 'StationSettings'
- AND [COLUMN_NAME] = 'RestartCom'
-)
- ALTER TABLE [dbo].[StationSettings] ADD [RestartCom] BIT;
-GO
-
-ALTER PROCEDURE [dbo].[StationSettingsSelect]
-AS
-SELECT [ID_Station],
- [PCNr],
- [ComPort],
- [Inst_CODE1],
- [Inst_CODE2],
- [Inst_Name1],
- [Inst_Name2],
- [TestCSN],
- [Reader],
- [useTestButtons] = ISNULL ([useTestButtons], 0),
- [useBeep] = ISNULL ([useBeep], 22),
- [checkUser] = ISNULL ([checkUser], 0),
- [EPDTimeout],
- [EPDRetries],
- [RestartCom]
-FROM [dbo].[StationSettings]
-WHERE [PCNr] = HOST_NAME ();
-GO
-
-ALTER PROCEDURE [dbo].[StationSettingsUpdate]
- @ComPort INT = NULL,
- @Inst_CODE1 INT = NULL,
- @Inst_CODE2 INT = NULL,
- @Inst_Name1 VARCHAR(50) = NULL,
- @Inst_Name2 VARCHAR(50) = NULL,
- @TestCSN VARCHAR(50) = NULL,
- @Reader VARCHAR(70) = NULL,
- @useTestButtons BIT = 0,
- @useBeep TINYINT = 22,
- @checkUser BIT = 0,
- @EPDTimeout INT = 10000,
- @EPDRetries INT = 1,
- @RestartCom BIT = 0
-AS
-IF NOT EXISTS
-(
- SELECT *
- FROM [dbo].[StationSettings]
- WHERE [PCNr] = HOST_NAME ()
-)
- INSERT [dbo].[StationSettings]
- (
- [PCNr],
- [ComPort],
- [Inst_CODE1],
- [Inst_CODE2],
- [Inst_Name1],
- [Inst_Name2],
- [TestCSN],
- [Reader],
- [useTestButtons],
- [useBeep],
- [checkUser],
- [EPDRetries],
- [RestartCom]
- )
- VALUES
- (HOST_NAME (), @ComPort, @Inst_CODE1, @Inst_CODE2, @Inst_Name1, @Inst_Name2, @TestCSN, @Reader, @useTestButtons,
- @useBeep, @checkUser, @EPDRetries, @RestartCom);
-ELSE
- UPDATE [dbo].[StationSettings]
- SET [ComPort] = @ComPort,
- [Inst_CODE1] = @Inst_CODE1,
- [Inst_CODE2] = @Inst_CODE2,
- [Inst_Name1] = @Inst_Name1,
- [Inst_Name2] = @Inst_Name2,
- [TestCSN] = @TestCSN,
- [Reader] = @Reader,
- [useTestButtons] = @useTestButtons,
- [useBeep] = @useBeep,
- [checkUser] = @checkUser,
- [EPDTimeout] = @EPDTimeout,
- [EPDRetries] = @EPDRetries,
- [RestartCom] = @RestartCom
- WHERE [PCNr] = HOST_NAME ();
-GO
-
-ALTER PROCEDURE [dbo].[StationSettingsSelect]
-AS
-SELECT [ID_Station],
- [PCNr],
- [ComPort],
- [Inst_CODE1],
- [Inst_CODE2],
- [Inst_Name1],
- [Inst_Name2],
- [TestCSN],
- [Reader],
- [useTestButtons] = ISNULL ([useTestButtons], 0),
- [useBeep] = ISNULL ([useBeep], 22),
- [checkUser] = ISNULL ([checkUser], 0),
- [EPDTimeout] = ISNULL ([EPDTimeout], 10000),
- [EPDRetries] = ISNULL ([EPDRetries], 1),
- [RestartCom] = ISNULL ([RestartCom], 0)
-FROM [dbo].[StationSettings]
-WHERE [PCNr] = HOST_NAME ();
-
-go
-
-ALTER PROCEDURE [dbo].[GetPersonInfo] @CSN CHAR(14) =NULL, @PersID INT = NULL AS
---DECLARE @PersID INT = null, @CSN CHAR(14) = 'TP10';
-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;
-
-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] = CASE WHEN 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 a.[hasEPD] = 1 THEN 'EPD not returned' ELSE a.[ReasonNoAccess] END,
- [a].[Dose_52W_microSv],
- [a].[hasEPD],
- activeStation = @lid_station,
- activeVisit = @lid_visit
-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)
- FROM [dbo].[PersonInfoSnapshot] [p]
- WHERE [p].[PersID] = @PersID) a
- go
-
----- Luc 2022-03-25
-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,
- 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
-
-
-
-CREATE OR ALTER PROCEDURE [syncLoc].[UpdateRemoteReturns] @ID_LocalStation INT=null AS
- -- Luc 2022-03-25
- --DECLARE @ID_LocalStation INT = 9;
- DECLARE @pcnr VARCHAR(20)
-
- select @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'
-
- IF @ID_LocalStation IS NULL SELECT @ID_LocalStation =id_station From stationsettings WHERE pcnr= @pcnr
- select @ID_LocalStation,pcnr FROM 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])
-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]
-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 [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] = ISNULL([c].[isManualExit], [v].[isManualExit]),
- [ID_Station_Return] = ISNULL([c].[ID_Station_Return], [v].[ID_Station_Return]),
- [EXIT_EPD_CLOCK] = [c].[EXIT_EPD_CLOCK]
-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;
-
-GO
-
-GRANT EXECUTE ON [syncLoc].[UpdateRemoteReturns] TO [eDosStation]
-go
\ No newline at end of file
+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
+ALTER PROCEDURE [dbo].[GetPersonInfo] @CSN CHAR(14) = NULL,
+ @PersID INT = NULL
+AS
+--DECLARE @PersID INT = null, @CSN CHAR(14) = 'TP10';
+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;
+
+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] = CASE WHEN [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 [a].[hasEPD] = 1 THEN 'EPD not returned' ELSE [a].[ReasonNoAccess] END,
+ [a].[Dose_52W_microSv],
+ [a].[hasEPD],
+ [activeStation] = @lid_station,
+ [activeVisit] = @lid_visit
+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)
+ FROM [dbo].[PersonInfoSnapshot] [p]
+ WHERE [p].[PersID] = @PersID) [a];
+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
+AS
+-- Luc 2022-03-25
+--DECLARE @ID_LocalStation INT = 9;
+DECLARE @pcnr VARCHAR(20);
+
+SELECT @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';
+
+IF @ID_LocalStation IS NULL
+ SELECT
+ @ID_LocalStation = [id_station]
+ FROM [dbo].[stationsettings]
+ WHERE [pcnr] = @pcnr;
+
+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] = ISNULL([c].[isManualExit], [v].[isManualExit]),
+ [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;
+GO
+GRANT EXECUTE ON [syncLoc].[UpdateRemoteReturns] TO [eDosStation];
+GO
diff --git a/eDosStation/DataInterface.cs b/eDosStation/DataInterface.cs
index ef6a26c..76b39ca 100644
--- a/eDosStation/DataInterface.cs
+++ b/eDosStation/DataInterface.cs
@@ -1,466 +1,463 @@
-using System;
-using System.Data;
-using System.Data.SqlClient;
-
-namespace eDosStation
-{
- public class DataInterface
- {
- public int ID_Station;
- public bool isLocal = false;
- private string currentConStr, ConCentralStr;
- public System.IO.StreamWriter stationLog;
-
- public SqlConnection localConnection, centralConnection;
- public System.Data.SqlClient.SqlCommand VisitInitCommand;
- public static SqlCommand VisitExitCommand;
- public static SqlCommand NextIDCommand;
- public static SqlCommand LastIDCommand;
- public static SqlCommand CheckStatus;
- public DataSet1.CommentOnEventDataTable dtCOE;
- private bool CheckUser;
-
- public static string tnow()
- {
- return DateTime.Now.ToString("HH:mm:ss.fff");
- }
- public static int? NextID()
- {
- int? nxtValue = null;
- if (NextIDCommand.Connection.State == ConnectionState.Closed) NextIDCommand.Connection.Open();
- nxtValue = NextIDCommand.ExecuteScalar() as int?;
- return nxtValue;
- }
- public static int? LastID()
- {
- int? lastValue = null;
- if (NextIDCommand.Connection.State == ConnectionState.Closed) LastIDCommand.Connection.Open();
- lastValue = LastIDCommand.ExecuteScalar() as int?;
- return lastValue;
- }
- ///
- /// Check connenction. If closed then open oand optianly leave open.
- ///
- /// If opened leave it open
- /// true if connection ok
- public bool checkCon(bool leaveOpen = false)
- {
- bool rv = false;
- if (localConnection != null && localConnection.State == System.Data.ConnectionState.Open) return true;
- try
- {
- if (localConnection == null || string.IsNullOrEmpty(localConnection.ConnectionString)) localConnection = new SqlConnection(currentConStr);
- localConnection.Open();
- rv = true;
- }
- catch (System.Exception ex)
- {
- System.Windows.MessageBox.Show($"Opening '{currentConStr}' error :{ex.Message}");
- }
- if (rv && !leaveOpen) localConnection?.Close();
- return rv;
- }
- public bool checkConCentral(bool leaveOpen = false)
- {
- bool rv = false;
-
- if (centralConnection != null && centralConnection.State == System.Data.ConnectionState.Open) return true;
- try
- {
- if (centralConnection == null || string.IsNullOrEmpty(centralConnection.ConnectionString)) centralConnection = new SqlConnection(ConCentralStr);
- centralConnection.Open();
- rv = true;
- }
- catch (System.Exception ex)
- {
- System.Windows.MessageBox.Show($"Opening '{ConCentralStr}' error :{ex.Message}");
- }
- if (rv && !leaveOpen) centralConnection?.Close();
- return rv;
- }
- internal void SetStation(int curIDStation)
- {
- ID_Station = curIDStation;
- LastIDCommand.Parameters["ID_Station"].Value = curIDStation;
- VisitInitCommand.Parameters["ID_Station"].Value = curIDStation;
- CheckStatus.Parameters["ID_Station"].Value = curIDStation;
- }
- public bool isOnline()
- {
- bool? online = false;
- if (checkCon(true))
- {
- online = CheckStatus.ExecuteScalar() as bool?;
- if (!online.HasValue) online = false;
- }
- isLocal = !online.Value;
- return online.Value;
- }
- static public void first()
- {
- var cb = new System.Data.SqlClient.SqlConnectionStringBuilder(Properties.Settings.Default.localConnectionString);
- if (string.IsNullOrEmpty(cb.Password))
- {
- var f = new AskPwd();
- f.ShowDialog();
- string pwd = f.ResponseText;
- string cfg = System.IO.Path.Combine(Environment.CurrentDirectory, System.AppDomain.CurrentDomain.FriendlyName);
- Config.ToggleConfigEncryption(cfg, pwd);
- System.Windows.Application.Current.Shutdown();
- }
- }
- private void init()
- {
- stationLog?.WriteLine($"Datainterface.Init start {tnow()}");
- try
- {
- var flog = System.Configuration.ConfigurationManager.AppSettings["sqlLogFolder"];
- if (System.IO.Directory.Exists(flog))
- {
- string fn = System.IO.Path.Combine(flog, "station.log");
- if (System.IO.File.Exists(fn))
- {
- stationLog = new System.IO.StreamWriter(fn, false, System.Text.Encoding.UTF8);
- }
- }
-
- first();
- currentConStr = System.Configuration.ConfigurationManager.ConnectionStrings["eDosStation.Properties.Settings.localConnectionString"].ConnectionString;
- ConCentralStr = System.Configuration.ConfigurationManager.ConnectionStrings["eDosConnectionString"].ConnectionString;
- localConnection = new SqlConnection(currentConStr);
- NextIDCommand = new SqlCommand("SELECT NEXT VALUE FOR VisitSequence as VisitID", localConnection);
- isLocal = true;
- MakeCommands();
- bool rv = checkCon(false);
- } catch (Exception ex)
- {
- System.Windows.MessageBox.Show($"Init error {ex.Message} con={currentConStr}");
- stationLog.WriteLine($"Init error {ex.Message} con={currentConStr}");
- }
- stationLog?.WriteLine($"Datainterface.Init end {tnow()}");
- }
- public DataInterface( )
- {
- init();
- }
-
- // DataSet1TableAdapters.GetTaskInfoTableAdapter TaskInfoTa()
- //{
- // return new DataSet1TableAdapters.GetTaskInfoTableAdapter();
- // //var ta = DataSet1TableAdapters.GetTaskInfoTableAdapter();
- // //if (ta.Connection.ConnectionString!= currentConStr) ta.Connection.ConnectionString = currentConStr;
- // //return
- //}
-
- // DataSet1TableAdapters.GetTaskListTableAdapter TaskListTA()
- //{
- // return new DataSet1TableAdapters.GetTaskListTableAdapter();
- // //ta.Connection.ConnectionString = currentConStr;
- // //return ta;
- //}
-
- internal void SetCheckUser(bool pCheckUser)
- {
- this.CheckUser = pCheckUser;
- }
-
- //DataSet1TableAdapters.CommentOnEventTableAdapter CommentTA()
- //{
- // var ta = new DataSet1TableAdapters.CommentOnEventTableAdapter();
- // ta.Connection.ConnectionString = currentConStr;
- // return ta;
- //}
-
- public System.Data.SqlClient.SqlConnection getCon(bool LeaveOpen)
- {
- checkCon(LeaveOpen);
- return localConnection;
- }
-
- public System.Data.SqlClient.SqlConnection getConCentral(bool LeaveOpen)
- {
- checkConCentral(LeaveOpen);
- return centralConnection;
- }
-
- void MakeCommands()
- {
- LastIDCommand = new SqlCommand("VisitIDLast", localConnection);
- LastIDCommand.CommandType = CommandType.StoredProcedure;
- var pa = new System.Data.SqlClient.SqlParameter("ID_Station", SqlDbType.Int, 4); LastIDCommand.Parameters.Add(pa);
-
- CheckStatus = new SqlCommand("[syncLoc].[SyncStatusIsOK]", localConnection);
- CheckStatus.CommandType = CommandType.StoredProcedure;
- pa = new System.Data.SqlClient.SqlParameter("ID_Station", SqlDbType.Int, 4); CheckStatus.Parameters.Add(pa);
-
- VisitInitCommand = new System.Data.SqlClient.SqlCommand("[dbo].[VisitInit]", localConnection) { CommandType = System.Data.CommandType.StoredProcedure };
- VisitInitCommand.Parameters.AddRange(new System.Data.SqlClient.SqlParameter[] {
- new System.Data.SqlClient.SqlParameter("PersID",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("ID_Task",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("Inst_CODE",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("EPD_InternalID",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("isBG",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("EPDVisitID",SqlDbType.Int,0,System.Data.ParameterDirection.Output,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("ID_Station",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("ID_Visit",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("ENTRY_EPD_CLOCK",SqlDbType.Decimal,0,System.Data.ParameterDirection.Input,false,10,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("epdType",SqlDbType.TinyInt,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- });
-
- //VisitExitCommand = new SqlCommand("VisitExit", localConnection);
- //VisitExitCommand.CommandType = CommandType.StoredProcedure;
- //pa = new System.Data.SqlClient.SqlParameter("EPDVisitID", SqlDbType.Int, 4); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("HP07", SqlDbType.Float); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("HP10", SqlDbType.Float); VisitExitCommand.Parameters.Add(pa);
-
- //pa = new System.Data.SqlClient.SqlParameter("Hp07Total", SqlDbType.Float); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("Hp10Total", SqlDbType.Float); VisitExitCommand.Parameters.Add(pa);
-
- //pa = new System.Data.SqlClient.SqlParameter("Hp07Peak", SqlDbType.Float); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("Hp10Peak", SqlDbType.Float); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("HP07PeakTime", SqlDbType.DateTime); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("HP10PeakTime", SqlDbType.DateTime); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("K1", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("K2", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("K3", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("K4", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("K5", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("K6", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("SG", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("BC", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("FB", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("HG", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa);
-
- //pa = new System.Data.SqlClient.SqlParameter("QualityData", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa);
-
- //pa = new System.Data.SqlClient.SqlParameter("alarmStatus", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("otherAlarms", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("errorStatus", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("operatingStatus", SqlDbType.Int); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("ENTRY_EPD_CLOCK", SqlDbType.Decimal, 9); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("EXIT_EPD_CLOCK", SqlDbType.Decimal, 9); VisitExitCommand.Parameters.Add(pa);
- //pa = new System.Data.SqlClient.SqlParameter("PersID", SqlDbType.Int, 4); VisitExitCommand.Parameters.Add(pa);
-
- VisitExitCommand = new System.Data.SqlClient.SqlCommand("[dbo].[VisitExit]", localConnection) { CommandType = System.Data.CommandType.StoredProcedure };
- VisitExitCommand.Parameters.AddRange(new System.Data.SqlClient.SqlParameter[] {
- new System.Data.SqlClient.SqlParameter("EPDVisitID",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("HP07",SqlDbType.Float,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("HP10",SqlDbType.Float,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("HP07Peak",SqlDbType.Float,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("HP10Peak",SqlDbType.Float,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("HP07PeakTime",SqlDbType.DateTime,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("HP10PeakTime",SqlDbType.DateTime,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("HP07Total",SqlDbType.Float,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("HP10Total",SqlDbType.Float,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("K1",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("K2",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("K3",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("K4",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("K5",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("K6",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("SG",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("BC",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("FB",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("HG",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("QualityData",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("alarmStatus",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("otherAlarms",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("errorStatus",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("operatingStatus",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("ENTRY_EPD_CLOCK",SqlDbType.Decimal,0,System.Data.ParameterDirection.Input,false,10,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("EXIT_EPD_CLOCK",SqlDbType.Decimal,0,System.Data.ParameterDirection.Input,false,10,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("PersID",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("eDosBatteryWarning",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("eDosDose07Warning",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("eDosDose07Alarm",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("eDosRate07Warning",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("eDosRate07Alarm",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("eDosDose10Warning",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("eDosDose10Alarm",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("eDosRate10Warning",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- , new System.Data.SqlClient.SqlParameter("eDosRate10Alarm",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
- });
- }
-
- public bool SetBoolParam(SqlCommand c, string pa, bool value)
- {
- bool found = true;
- if (c.Parameters.Contains(pa)) c.Parameters[pa].Value = value;
- else
- {
- if (pa[0] != '@') pa = "@" + pa; else pa = pa.Substring(1);
- if (c.Parameters.Contains(pa)) c.Parameters[pa].Value = value;
- else found = false;
- }
- return found;
- }
-
- public void VisitExit(int EpdVisitID, EpdBaseClr.Epd2 ep)
- {
- VisitExitCommand.Parameters["EPDVisitID"].Value = EpdVisitID;
- VisitExitCommand.Parameters["HP07"].Value = ep.Hp07;
- VisitExitCommand.Parameters["HP10"].Value = ep.Hp10;
-
- VisitExitCommand.Parameters["Hp07Total"].Value = ep.Hp07Total;
- VisitExitCommand.Parameters["Hp10Total"].Value = ep.Hp10Total;
-
- VisitExitCommand.Parameters["Hp07Peak"].Value = ep.Hp07Peak;
- VisitExitCommand.Parameters["Hp10Peak"].Value = ep.Hp10Peak;
- if (ep.Hp07PeakTime != null)
- VisitExitCommand.Parameters["HP07PeakTime"].Value = ep.Hp07PeakTime;
- else
- VisitExitCommand.Parameters["HP07PeakTime"].Value = DBNull.Value;
- if (ep.Hp10PeakTime != null)
- VisitExitCommand.Parameters["Hp10PeakTime"].Value = ep.Hp07PeakTime;
- else
- VisitExitCommand.Parameters["Hp10PeakTime"].Value = DBNull.Value;
-
- VisitExitCommand.Parameters["K1"].Value = ep.K1;
- VisitExitCommand.Parameters["K2"].Value = ep.K2;
- VisitExitCommand.Parameters["K3"].Value = ep.K3;
- VisitExitCommand.Parameters["K4"].Value = ep.K4;
- VisitExitCommand.Parameters["K5"].Value = ep.K5;
- VisitExitCommand.Parameters["K6"].Value = ep.K6;
- VisitExitCommand.Parameters["SG"].Value = ep.SG;
- VisitExitCommand.Parameters["BC"].Value = ep.BC;
- VisitExitCommand.Parameters["FB"].Value = ep.FB;
- VisitExitCommand.Parameters["HG"].Value = ep.HG;
-
- VisitExitCommand.Parameters["QualityData"].Value = ep.QualityData;
-
- //VisitExitCommand.Parameters["D1"].Value = ep.D1;
- //VisitExitCommand.Parameters["D2"].Value = ep.D2;
- //VisitExitCommand.Parameters["D3"].Value = ep.D3;
- //VisitExitCommand.Parameters["D4"].Value = ep.D4;
-
- VisitExitCommand.Parameters["alarmStatus"].Value = ep.alarmStatus;
- VisitExitCommand.Parameters["otherAlarms"].Value = ep.otherAlarms;
- VisitExitCommand.Parameters["errorStatus"].Value = ep.errorStatus;
- VisitExitCommand.Parameters["operatingStatus"].Value = ep.operatingStatus;
- VisitExitCommand.Parameters["ENTRY_EPD_CLOCK"].Value = ep.CountsClockBase;
- VisitExitCommand.Parameters["EXIT_EPD_CLOCK"].Value = ep.CountsClock;
-
- if (int.TryParse(ep.WearerName, out int WearerPersID))
- VisitExitCommand.Parameters["PersID"].Value = WearerPersID;
- else
- VisitExitCommand.Parameters["PersID"].Value = DBNull.Value;
-
- SetBoolParam(VisitExitCommand,"eDosBatteryWarning",ep.eDosBatteryWarning);
- SetBoolParam(VisitExitCommand, "eDosDose07Warning", ep.eDosDose07Warning);
- SetBoolParam(VisitExitCommand, "eDosDose07Alarm", ep.eDosDose07Alarm);
- SetBoolParam(VisitExitCommand, "eDosRate07Warning", ep.eDosRate07Warning);
- SetBoolParam(VisitExitCommand, "eDosRate07Alarm", ep.eDosRate07Alarm);
- SetBoolParam(VisitExitCommand, "eDosDose10Warning", ep.eDosDose10Warning);
- SetBoolParam(VisitExitCommand, "eDosDose10Alarm", ep.eDosDose10Alarm);
- SetBoolParam(VisitExitCommand, "eDosRate10Warning", ep.eDosRate10Warning);
- SetBoolParam(VisitExitCommand, "eDosRate10Alarm", ep.eDosRate10Alarm);
-
- checkCon(true);
- VisitExitCommand.Connection = localConnection;
- VisitExitCommand.ExecuteNonQuery();
- localConnection.Close();
- }
-
- public void FillComment()
- {
- if (dtCOE == null) dtCOE = new DataSet1.CommentOnEventDataTable();
- using (var dt = new DataSet1TableAdapters.CommentOnEventTableAdapter())
- {
- dt.Fill(dtCOE);
- }
- }
-
- public DataSet1.CommentOnEventRow GetCommentOnEventRow(int id)
- {
- return dtCOE.FindByID_CommnentOnEvent(id);
- }
-
- public void FillTaskInfo(User _User, DataSet1 dataSet1)
- {
- try
- {
- using (var dataSet1GetTaskInfoTableAdapter = new DataSet1TableAdapters.GetTaskInfoTableAdapter()) // new eDosStation.DataSet1TableAdapters.GetTaskInfoTableAdapter())
- {
- //dataSet1GetTaskInfoTableAdapter.Connection.ConnectionString = currentConStr;
- stationLog?.WriteLine($"dataSet1GetTaskInfoTableAdapter Fillin {System.DateTime.Now}");
- dataSet1GetTaskInfoTableAdapter.Fill(dataSet1.GetTaskInfo, null, _User.Margin);
- stationLog?.WriteLine($"dataSet1GetTaskInfoTableAdapter Filled {System.DateTime.Now}");
- }
- }
- catch (System.Exception ex) {
- if (stationLog != null) stationLog.WriteLine($"FillTaskInfo error {ex.Message} {System.DateTime.Now}");
- }
- }
-
- public User GetUser( string CSN, string Code, bool isEntry)
- {
- User u = new User();
- //object[] Values = null;
- try
- {
- using (var cmd = new SqlCommand("GetPersonInfo", localConnection) { CommandType = System.Data.CommandType.StoredProcedure } )
- {
- if (int.TryParse(Code, out int PersID)) cmd.Parameters.AddWithValue("PersID", PersID);
- if (!string.IsNullOrEmpty(CSN)) cmd.Parameters.AddWithValue("csn", CSN);
- else cmd.Parameters.AddWithValue("csn", DBNull.Value);
- checkCon(true);
- var rs = cmd.ExecuteReader(System.Data.CommandBehavior.SingleRow);
- using (var tb = new DataTable())
- {
- tb.Load(rs);
- if (tb.Rows.Count > 0)
- {
- DataRow dr = tb.Rows[0];
- //Values = new object[rs.FieldCount];
- //int rv = rs.GetValues(Values);
- u.PersID = (int)dr["PersID"];
- u.LastName = dr["LastName"].ToString();
- u.FirstName = dr["FirstName"].ToString();
- //u.conCode = Values[rs.GetOrdinal("conCode")].ToString();
- u.Language = dr["Language"].ToString();
- u.AccessAllow = dr["AccessAllow"] as bool?;
- decimal? m = dr["Margin"] as decimal?;
- if (m.HasValue) u.Margin = (double)m.Value; else u.Margin = null;
- //u.Margin = (double ?)Values[rs.GetOrdinal("Margin")] ;
- u.VisitIDLocked = dr["VisitIDLocked"] as int?;
- u.ReasonNoAccess = dr["ReasonNoAccess"].ToString().Replace("\\n", "\n");
- u.UserComment = dr["Comment"].ToString();
-
- if (isEntry && tb.Columns.Contains("hasEPD"))
- {
- u.hasEPD = (bool)dr["hasEPD"];
- if (u.hasEPD) u.ReasonNoAccess = "You have an EPD in use"; //!!! not for return !!!!
- }
- else u.hasEPD = false;
- u.activeVisit = dr["activeVisit"] as int?;
- u.AllOk = ( !CheckUser || (u.AccessAllow == true && u.VisitIDLocked == 0));
- }
- else
- {
- // Not found
- u.PersID = 0;
- u.LastName = "Not Found";
- u.FirstName = "Not Found";
- //u.conCode = "A1";
- u.Language = "N";
- u.AccessAllow = false;
- u.Margin = 0;
- u.VisitIDLocked = 0;
- u.ReasonNoAccess = "Not found";
- u.UserComment = string.Empty;
- u.hasEPD = false;
- u.AllOk = !CheckUser || (u.AccessAllow == true && u.VisitIDLocked == 0);
- }
- rs.Close();
- }
- }
- }
- catch (System.Exception ex)
- {
- if (stationLog != null) stationLog.WriteLine($"GetUser error {ex.Message} {System.DateTime.Now.ToString("HH:mm:ss:nnn")}");
-
- }
- return u;
- }
- }
-}
+using LSWLib;
+using System;
+using System.Data;
+using System.Data.SqlClient;
+
+namespace eDosStation
+{
+ public class DataInterface
+ {
+ const string moduleName = "DataInterface";
+ public int ID_Station;
+ public bool isLocal = false;
+ private string currentConStr, ConCentralStr;
+ public System.IO.StreamWriter stationLog;
+
+ public SqlConnection localConnection, centralConnection;
+ internal CLog splunkLog;
+ public System.Data.SqlClient.SqlCommand VisitInitCommand;
+ public static SqlCommand VisitExitCommand;
+ public static SqlCommand NextIDCommand;
+ public static SqlCommand LastIDCommand;
+ public static SqlCommand CheckStatus;
+ public DataSet1.CommentOnEventDataTable dtCOE;
+ private bool CheckUser,AllowMultipleEPD;
+ private SqlCommand ReverseSyncCommand;
+
+ public static string tnow()
+ {
+ return DateTime.Now.ToString("HH:mm:ss.fff");
+ }
+ public static int? NextID()
+ {
+ int? nxtValue = null;
+ if (NextIDCommand.Connection.State == ConnectionState.Closed) NextIDCommand.Connection.Open();
+ nxtValue = NextIDCommand.ExecuteScalar() as int?;
+ return nxtValue;
+ }
+ public static int? LastID()
+ {
+ int? lastValue = null;
+ if (NextIDCommand.Connection.State == ConnectionState.Closed) LastIDCommand.Connection.Open();
+ lastValue = LastIDCommand.ExecuteScalar() as int?;
+ return lastValue;
+ }
+ ///
+ /// Check connenction. If closed then open oand optianly leave open.
+ ///
+ /// If opened leave it open
+ /// true if connection ok
+ public bool checkCon(bool leaveOpen = false)
+ {
+ bool rv = false;
+ if (localConnection != null && localConnection.State == System.Data.ConnectionState.Open) return true;
+ try
+ {
+ if (localConnection == null || string.IsNullOrEmpty(localConnection.ConnectionString)) localConnection = new SqlConnection(currentConStr);
+ localConnection.Open();
+ rv = true;
+ }
+ catch (System.Exception ex)
+ {
+ System.Windows.MessageBox.Show($"Opening '{currentConStr}' error :{ex.Message}");
+ }
+ if (rv && !leaveOpen) localConnection?.Close();
+ return rv;
+ }
+ public bool checkConCentral(bool leaveOpen = false)
+ {
+ bool rv = false;
+
+ if (centralConnection != null && centralConnection.State == System.Data.ConnectionState.Open) return true;
+ try
+ {
+ if (centralConnection == null || string.IsNullOrEmpty(centralConnection.ConnectionString)) centralConnection = new SqlConnection(ConCentralStr);
+ centralConnection.Open();
+ rv = true;
+ }
+ catch (System.Exception ex)
+ {
+ System.Windows.MessageBox.Show($"Opening '{ConCentralStr}' error :{ex.Message}");
+ }
+ if (rv && !leaveOpen) centralConnection?.Close();
+ return rv;
+ }
+ internal void SetStation(int curIDStation)
+ {
+ ID_Station = curIDStation;
+ LastIDCommand.Parameters["ID_Station"].Value = curIDStation;
+ VisitInitCommand.Parameters["ID_Station"].Value = curIDStation;
+ CheckStatus.Parameters["ID_Station"].Value = curIDStation;
+ }
+ public bool isOnline()
+ {
+ bool? online = false;
+ if (checkCon(true))
+ {
+ online = CheckStatus.ExecuteScalar() as bool?;
+ if (!online.HasValue) online = false;
+ }
+ isLocal = !online.Value;
+ return online.Value;
+ }
+ static public void first()
+ {
+ var cb = new System.Data.SqlClient.SqlConnectionStringBuilder(Properties.Settings.Default.localConnectionString);
+ if (string.IsNullOrEmpty(cb.Password))
+ {
+ var f = new AskPwd();
+ f.ShowDialog();
+ string pwd = f.ResponseText;
+ string cfg = System.IO.Path.Combine(Environment.CurrentDirectory, System.AppDomain.CurrentDomain.FriendlyName);
+ Config.ToggleConfigEncryption(cfg, pwd);
+ System.Windows.Application.Current.Shutdown();
+ }
+ }
+ private void init()
+ {
+ const string taskName = "init";
+ stationLog?.WriteLine($"{moduleName}.{taskName }start {tnow()}");
+ try
+ {
+ var flog = System.Configuration.ConfigurationManager.AppSettings["sqlLogFolder"];
+ if (System.IO.Directory.Exists(flog))
+ {
+ string fn = System.IO.Path.Combine(flog, "station.log");
+ if (System.IO.File.Exists(fn))
+ {
+ stationLog = new System.IO.StreamWriter(fn, false, System.Text.Encoding.UTF8);
+ }
+ }
+
+ first();
+ currentConStr = System.Configuration.ConfigurationManager.ConnectionStrings["eDosStation.Properties.Settings.localConnectionString"].ConnectionString;
+ ConCentralStr = System.Configuration.ConfigurationManager.ConnectionStrings["eDosConnectionString"].ConnectionString;
+ localConnection = new SqlConnection(currentConStr);
+ NextIDCommand = new SqlCommand("SELECT NEXT VALUE FOR VisitSequence as VisitID", localConnection);
+ isLocal = true;
+ MakeCommands();
+ bool rv = checkCon(false);
+ } catch (Exception ex)
+ {
+ splunkLog?.WriteException(moduleName, taskName, ex);
+ System.Windows.MessageBox.Show($"Init error {ex.Message} con={currentConStr}");
+ stationLog.WriteLine($"Init error {ex.Message} con={currentConStr}");
+ }
+ stationLog?.WriteLine($"Datainterface.Init end {tnow()}");
+ }
+ public DataInterface( )
+ {
+ init();
+ }
+
+ // DataSet1TableAdapters.GetTaskInfoTableAdapter TaskInfoTa()
+ //{
+ // return new DataSet1TableAdapters.GetTaskInfoTableAdapter();
+ // //var ta = DataSet1TableAdapters.GetTaskInfoTableAdapter();
+ // //if (ta.Connection.ConnectionString!= currentConStr) ta.Connection.ConnectionString = currentConStr;
+ // //return
+ //}
+
+ // DataSet1TableAdapters.GetTaskListTableAdapter TaskListTA()
+ //{
+ // return new DataSet1TableAdapters.GetTaskListTableAdapter();
+ // //ta.Connection.ConnectionString = currentConStr;
+ // //return ta;
+ //}
+
+ internal void SetCheckUser(bool pCheckUser)
+ {
+ this.CheckUser = pCheckUser;
+ }
+
+ internal void SetAllowMultipleEPD(bool pAllowMultipleEPD)
+ {
+ this.AllowMultipleEPD = pAllowMultipleEPD;
+ }
+ //DataSet1TableAdapters.CommentOnEventTableAdapter CommentTA()
+ //{
+ // var ta = new DataSet1TableAdapters.CommentOnEventTableAdapter();
+ // ta.Connection.ConnectionString = currentConStr;
+ // return ta;
+ //}
+
+ public System.Data.SqlClient.SqlConnection getCon(bool LeaveOpen)
+ {
+ checkCon(LeaveOpen);
+ return localConnection;
+ }
+
+ public System.Data.SqlClient.SqlConnection getConCentral(bool LeaveOpen)
+ {
+ checkConCentral(LeaveOpen);
+ return centralConnection;
+ }
+
+ void MakeCommands()
+ {
+ LastIDCommand = new SqlCommand("VisitIDLast", localConnection);
+ LastIDCommand.CommandType = CommandType.StoredProcedure;
+ var pa = new System.Data.SqlClient.SqlParameter("ID_Station", SqlDbType.Int, 4); LastIDCommand.Parameters.Add(pa);
+
+ CheckStatus = new SqlCommand("[syncLoc].[SyncStatusIsOK]", localConnection);
+ CheckStatus.CommandType = CommandType.StoredProcedure;
+ pa = new System.Data.SqlClient.SqlParameter("ID_Station", SqlDbType.Int, 4); CheckStatus.Parameters.Add(pa);
+
+ VisitInitCommand = new System.Data.SqlClient.SqlCommand("[dbo].[VisitInit]", localConnection) { CommandType = System.Data.CommandType.StoredProcedure };
+ VisitInitCommand.Parameters.AddRange(new System.Data.SqlClient.SqlParameter[] {
+ new System.Data.SqlClient.SqlParameter("PersID",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("ID_Task",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("Inst_CODE",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("EPD_InternalID",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("isBG",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("EPDVisitID",SqlDbType.Int,0,System.Data.ParameterDirection.Output,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("ID_Station",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("ID_Visit",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("ENTRY_EPD_CLOCK",SqlDbType.Decimal,0,System.Data.ParameterDirection.Input,false,10,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("epdType",SqlDbType.TinyInt,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ });
+
+ VisitExitCommand = new System.Data.SqlClient.SqlCommand("[dbo].[VisitExit]", localConnection) { CommandType = System.Data.CommandType.StoredProcedure };
+ VisitExitCommand.Parameters.AddRange(new System.Data.SqlClient.SqlParameter[] {
+ new System.Data.SqlClient.SqlParameter("EPDVisitID",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("HP07",SqlDbType.Float,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("HP10",SqlDbType.Float,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("HP07Peak",SqlDbType.Float,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("HP10Peak",SqlDbType.Float,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("HP07PeakTime",SqlDbType.DateTime,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("HP10PeakTime",SqlDbType.DateTime,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("HP07Total",SqlDbType.Float,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("HP10Total",SqlDbType.Float,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("K1",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("K2",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("K3",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("K4",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("K5",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("K6",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("SG",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("BC",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("FB",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("HG",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("QualityData",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("alarmStatus",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("otherAlarms",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("errorStatus",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("operatingStatus",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("ENTRY_EPD_CLOCK",SqlDbType.Decimal,0,System.Data.ParameterDirection.Input,false,10,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("EXIT_EPD_CLOCK",SqlDbType.Decimal,0,System.Data.ParameterDirection.Input,false,10,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("PersID",SqlDbType.Int,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("eDosBatteryWarning",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("eDosDose07Warning",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("eDosDose07Alarm",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("eDosRate07Warning",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("eDosRate07Alarm",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("eDosDose10Warning",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("eDosDose10Alarm",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("eDosRate10Warning",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ , new System.Data.SqlClient.SqlParameter("eDosRate10Alarm",SqlDbType.Bit,0,System.Data.ParameterDirection.Input,false,0,0,null,System.Data.DataRowVersion.Default,null)
+ });
+
+ ReverseSyncCommand = new System.Data.SqlClient.SqlCommand("syncLoc.UpdateRemoteReturns", localConnection) { CommandType = System.Data.CommandType.StoredProcedure };
+
+ }
+
+
+ public void VisitExit(int EpdVisitID, EpdBaseClr.Epd2 ep)
+ {
+ const string taskName = "VisitExit";
+ VisitExitCommand.Parameters["EPDVisitID"].Value = EpdVisitID;
+ VisitExitCommand.Parameters["HP07"].Value = ep.Hp07;
+ VisitExitCommand.Parameters["HP10"].Value = ep.Hp10;
+
+ VisitExitCommand.Parameters["Hp07Total"].Value = ep.Hp07Total;
+ VisitExitCommand.Parameters["Hp10Total"].Value = ep.Hp10Total;
+
+ VisitExitCommand.Parameters["Hp07Peak"].Value = ep.Hp07Peak;
+ VisitExitCommand.Parameters["Hp10Peak"].Value = ep.Hp10Peak;
+ if (ep.Hp07PeakTime != null)
+ VisitExitCommand.Parameters["HP07PeakTime"].Value = ep.Hp07PeakTime;
+ else
+ VisitExitCommand.Parameters["HP07PeakTime"].Value = DBNull.Value;
+ if (ep.Hp10PeakTime != null)
+ VisitExitCommand.Parameters["Hp10PeakTime"].Value = ep.Hp07PeakTime;
+ else
+ VisitExitCommand.Parameters["Hp10PeakTime"].Value = DBNull.Value;
+
+ VisitExitCommand.Parameters["K1"].Value = ep.K1;
+ VisitExitCommand.Parameters["K2"].Value = ep.K2;
+ VisitExitCommand.Parameters["K3"].Value = ep.K3;
+ VisitExitCommand.Parameters["K4"].Value = ep.K4;
+ VisitExitCommand.Parameters["K5"].Value = ep.K5;
+ VisitExitCommand.Parameters["K6"].Value = ep.K6;
+ VisitExitCommand.Parameters["SG"].Value = ep.SG;
+ VisitExitCommand.Parameters["BC"].Value = ep.BC;
+ VisitExitCommand.Parameters["FB"].Value = ep.FB;
+ VisitExitCommand.Parameters["HG"].Value = ep.HG;
+
+ VisitExitCommand.Parameters["QualityData"].Value = ep.QualityData;
+
+ //VisitExitCommand.Parameters["D1"].Value = ep.D1;
+ //VisitExitCommand.Parameters["D2"].Value = ep.D2;
+ //VisitExitCommand.Parameters["D3"].Value = ep.D3;
+ //VisitExitCommand.Parameters["D4"].Value = ep.D4;
+
+ VisitExitCommand.Parameters["alarmStatus"].Value = ep.alarmStatus;
+ VisitExitCommand.Parameters["otherAlarms"].Value = ep.otherAlarms;
+ VisitExitCommand.Parameters["errorStatus"].Value = ep.errorStatus;
+ VisitExitCommand.Parameters["operatingStatus"].Value = ep.operatingStatus;
+ VisitExitCommand.Parameters["ENTRY_EPD_CLOCK"].Value = ep.CountsClockBase;
+ VisitExitCommand.Parameters["EXIT_EPD_CLOCK"].Value = ep.CountsClock;
+
+ if (int.TryParse(ep.WearerName, out int WearerPersID))
+ VisitExitCommand.Parameters["PersID"].Value = WearerPersID;
+ else
+ VisitExitCommand.Parameters["PersID"].Value = DBNull.Value;
+
+ VisitExitCommand.SetBoolParam("eDosBatteryWarning",ep.eDosBatteryWarning);
+ VisitExitCommand.SetBoolParam("eDosDose07Warning", ep.eDosDose07Warning);
+ VisitExitCommand.SetBoolParam("eDosDose07Alarm", ep.eDosDose07Alarm);
+ VisitExitCommand.SetBoolParam("eDosRate07Warning", ep.eDosRate07Warning);
+ VisitExitCommand.SetBoolParam("eDosRate07Alarm", ep.eDosRate07Alarm);
+ VisitExitCommand.SetBoolParam("eDosDose10Warning", ep.eDosDose10Warning);
+ VisitExitCommand.SetBoolParam("eDosDose10Alarm", ep.eDosDose10Alarm);
+ VisitExitCommand.SetBoolParam("eDosRate10Warning", ep.eDosRate10Warning);
+ VisitExitCommand.SetBoolParam("eDosRate10Alarm", ep.eDosRate10Alarm);
+
+ checkCon(true);
+ VisitExitCommand.Connection = localConnection;
+ try
+ {
+ VisitExitCommand.ExecuteNonQuery();
+ } catch (System.Exception ex)
+ {
+ splunkLog?.WriteException(moduleName, taskName, ex);
+ }
+ localConnection.Close();
+ }
+
+ public void FillComment()
+ {
+ if (dtCOE == null) dtCOE = new DataSet1.CommentOnEventDataTable();
+ using (var dt = new DataSet1TableAdapters.CommentOnEventTableAdapter())
+ {
+ dt.Fill(dtCOE);
+ }
+ }
+
+ public DataSet1.CommentOnEventRow GetCommentOnEventRow(int id)
+ {
+ return dtCOE.FindByID_CommnentOnEvent(id);
+ }
+
+ public void FillTaskInfo(User _User, DataSet1 dataSet1)
+ {
+ const string taskName = "FillTaskInfo";
+ try
+ {
+ using (var dataSet1GetTaskInfoTableAdapter = new DataSet1TableAdapters.GetTaskInfoTableAdapter()) // new eDosStation.DataSet1TableAdapters.GetTaskInfoTableAdapter())
+ {
+ //dataSet1GetTaskInfoTableAdapter.Connection.ConnectionString = currentConStr;
+ stationLog?.WriteLine($"dataSet1GetTaskInfoTableAdapter Fillin {System.DateTime.Now}");
+ dataSet1GetTaskInfoTableAdapter.Fill(dataSet1.GetTaskInfo, null, _User.Margin);
+ stationLog?.WriteLine($"dataSet1GetTaskInfoTableAdapter Filled {System.DateTime.Now}");
+ }
+ }
+ catch (System.Exception ex) {
+ splunkLog?.WriteException(moduleName, taskName, ex);
+ if (stationLog != null) stationLog.WriteLine($"{taskName} error {ex.Message} {System.DateTime.Now}");
+ }
+ }
+
+ public User GetUser( string CSN, string Code, bool isEntry)
+ {
+ const string taskName = "GetUser";
+ User u = new User();
+ //object[] Values = null;
+ try
+ {
+ using (var cmd = new SqlCommand("GetPersonInfo", localConnection) { CommandType = System.Data.CommandType.StoredProcedure } )
+ {
+ if (int.TryParse(Code, out int PersID)) cmd.Parameters.AddWithValue("PersID", PersID);
+ if (!string.IsNullOrEmpty(CSN)) cmd.Parameters.AddWithValue("csn", CSN);
+ else cmd.Parameters.AddWithValue("csn", DBNull.Value);
+ checkCon(true);
+ var rs = cmd.ExecuteReader(System.Data.CommandBehavior.SingleRow);
+ using (var tb = new DataTable())
+ {
+ tb.Load(rs);
+ if (tb.Rows.Count > 0)
+ {
+ DataRow dr = tb.Rows[0];
+ //Values = new object[rs.FieldCount];
+ //int rv = rs.GetValues(Values);
+ u.PersID = (int)dr["PersID"];
+ u.LastName = dr["LastName"].ToString();
+ u.FirstName = dr["FirstName"].ToString();
+ //u.conCode = Values[rs.GetOrdinal("conCode")].ToString();
+ u.Language = dr["Language"].ToString();
+ u.AccessAllow = dr["AccessAllow"] as bool?;
+ decimal? m = dr["Margin"] as decimal?;
+ if (m.HasValue) u.Margin = (double)m.Value; else u.Margin = null;
+ //u.Margin = (double ?)Values[rs.GetOrdinal("Margin")] ;
+ u.VisitIDLocked = dr["VisitIDLocked"] as int?;
+ u.ReasonNoAccess = dr["ReasonNoAccess"].ToString().Replace("\\n", "\n");
+ u.UserComment = dr["Comment"].ToString();
+
+ if (isEntry && tb.Columns.Contains("hasEPD"))
+ {
+ u.hasEPD = (bool)dr["hasEPD"];
+ if (u.hasEPD) u.ReasonNoAccess = "You have an EPD in use"; //!!! not for return !!!!
+ }
+ else u.hasEPD = false;
+ u.activeVisit = dr["activeVisit"] as int?;
+ u.AllOk = ( !CheckUser || (u.AccessAllow == true && u.VisitIDLocked == 0));
+ }
+ else
+ {
+ // Not found
+ u.PersID = 0;
+ u.LastName = "Not Found";
+ u.FirstName = "Not Found";
+ //u.conCode = "A1";
+ u.Language = "N";
+ u.AccessAllow = false;
+ u.Margin = 0;
+ u.VisitIDLocked = 0;
+ u.ReasonNoAccess = "Not found";
+ u.UserComment = string.Empty;
+ u.hasEPD = false;
+ u.AllOk = !CheckUser || (u.AccessAllow == true && u.VisitIDLocked == 0);
+ }
+ rs.Close();
+ }
+ }
+ }
+ catch (System.Exception ex)
+ {
+ splunkLog?.WriteException(moduleName, taskName, ex);
+ if (stationLog != null) stationLog.WriteLine($"{taskName} error {ex.Message} {System.DateTime.Now.ToString("HH:mm:ss:nnn")}");
+ }
+ return u;
+ }
+
+
+ public bool ReverseSync()
+ {
+ const string taskName = "ReverseSync";
+ bool rv = false;
+ checkCon(true);
+ VisitExitCommand.Connection = localConnection;
+ try
+ {
+ ReverseSyncCommand.ExecuteNonQuery();
+ rv = true;
+ }
+ catch (System.Exception ex)
+ {
+ splunkLog?.WriteException(moduleName, taskName, ex);
+ }
+ localConnection.Close();
+ return rv;
+ }
+ }
+}
diff --git a/eDosStation/MainWindow.xaml b/eDosStation/MainWindow.xaml
index 0739bf6..a77a43c 100644
--- a/eDosStation/MainWindow.xaml
+++ b/eDosStation/MainWindow.xaml
@@ -21,8 +21,10 @@
-