615 lines
20 KiB
Transact-SQL
615 lines
20 KiB
Transact-SQL
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
|
|
|
|
|
|
IF NOT EXISTS (SELECT * FROM [sys].[columns] WHERE [object_id] = OBJECT_ID('dbo.visit') AND [name] = 'isFault')
|
|
BEGIN
|
|
ALTER TABLE [dbo].[Visit] ADD [isFault] BIT NULL;
|
|
END;
|
|
|
|
GO
|
|
IF OBJECT_ID('dbo.PersonAlarms') IS NULL BEGIN
|
|
CREATE TABLE [dbo].[PersonAlarms] ([PersID] INT NOT NULL,
|
|
[VisitTime] DATETIME NOT NULL,
|
|
[ID_Station] INT NOT NULL,
|
|
[ID_Visit] INT NOT NULL,
|
|
PRIMARY KEY NONCLUSTERED([PersID], [VisitTime]));
|
|
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,
|
|
@isAlarm BIT = NULL,
|
|
@isFault BIT = NULL
|
|
AS BEGIN
|
|
DECLARE
|
|
@ID_Visit INT,
|
|
@ID_Station INT,
|
|
@ID_Station_Return INT;
|
|
|
|
SET @ID_Station = @EPDVisitID % 100;
|
|
SET @ID_Visit = @EPDVisitID / 100;
|
|
|
|
IF @isAlarm IS NULL
|
|
SET @isAlarm = CASE WHEN ISNULL(@alarmStatus, 0) <> 0
|
|
OR (ISNULL(@otherAlarms, 0) & 0x7f) <> 0 --bit 7=battery low
|
|
OR ISNULL(@eDosDose07Warning, 0) <> 0
|
|
OR ISNULL(@eDosRate07Warning, 0) <> 0
|
|
OR ISNULL(@eDosDose10Warning, 0) <> 0
|
|
OR ISNULL(@eDosRate10Warning, 0) <> 0
|
|
OR ISNULL(@eDosDose07Alarm, 0) <> 0
|
|
OR ISNULL(@eDosRate07Alarm, 0) <> 0
|
|
OR ISNULL(@eDosDose10Alarm, 0) <> 0
|
|
OR ISNULL(@eDosRate10Alarm, 0) <> 0 THEN 1 ELSE 0 END;
|
|
|
|
DECLARE @Now DATETIME = GETDATE();
|
|
|
|
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] = @Now,
|
|
[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] = @isAlarm,
|
|
[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,
|
|
[isFault] = @isFault
|
|
WHERE [ID_Visit] = @ID_Visit
|
|
AND [ID_Station] = @ID_Station;
|
|
|
|
-- local- >PersonInfoSnapshot
|
|
IF @isAlarm = 1 BEGIN
|
|
IF @PersID IS NULL
|
|
SELECT
|
|
@PersID = [PersID]
|
|
FROM [dbo].[Visit]
|
|
WHERE [ID_Visit] = @ID_Visit
|
|
AND [ID_Station] = @ID_Station;
|
|
|
|
UPDATE
|
|
[dbo].[PersonInfoSnapshot]
|
|
SET
|
|
[VisitIDLocked] = @ID_Visit * 100 + @ID_Station
|
|
WHERE [PersID] = @PersID;
|
|
|
|
IF NOT EXISTS (SELECT
|
|
*
|
|
FROM [dbo].[PersonAlarms]
|
|
WHERE [PersID] = @PersID
|
|
AND [VisitTime] = @Now)
|
|
INSERT [dbo].[PersonAlarms]([PersID], [VisitTime], [ID_Station], [ID_Visit])
|
|
VALUES(@PersID, @Now, @ID_Station, @ID_Visit);
|
|
END;
|
|
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 INT NULL;
|
|
IF EXISTS (SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('[dbo].[StationSettings]') AND name='EPDRetries' AND [system_type_id]<>56)
|
|
ALTER TABLE [dbo].[StationSettings] ALTER COLUMN [EPDREtries] int
|
|
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
|
|
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[VisitInfo] @EPDVisitID INT = 51905,
|
|
@hasExited BIT = 0 OUT,
|
|
@isManualExit BIT = 0 OUT,
|
|
@name VARCHAR(100) = NULL OUT
|
|
AS
|
|
--DECLARE @EPDVisitID INT= 51905
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE
|
|
@ID_Visit INT,
|
|
@ID_Station INT,
|
|
@PersID INT;
|
|
|
|
SET @ID_Station = @EPDVisitID % 100;
|
|
SET @ID_Visit = @EPDVisitID / 100;
|
|
SET @hasExited = 0;
|
|
SET @isManualExit = 0;
|
|
|
|
SELECT
|
|
@hasExited = CONVERT(BIT, CASE WHEN [ReturnTime] IS NOT NULL OR [isManualExit] = 1 THEN 1 ELSE 0 END),
|
|
@isManualExit = ISNULL([isManualExit], 0),
|
|
@PersID = @PersID
|
|
FROM [dbo].[Visit]
|
|
WHERE [ID_Visit] = @ID_Visit
|
|
AND [ID_Station] = @ID_Station;
|
|
|
|
SET NOCOUNT OFF;
|
|
|
|
SELECT [hasExited] = @hasExited;
|
|
|
|
SELECT
|
|
@name = ISNULL([name] + ' ' + ISNULL([callingname], [firstname]), '?')
|
|
FROM [dbo].[PersonAll]
|
|
WHERE [persid] = @PersID;
|
|
|
|
RETURN CASE WHEN ISNULL(@hasExited, 0) = 1 THEN 1 ELSE 0 END + CASE WHEN ISNULL(@isManualExit, 0) = 1 THEN 2 ELSE 0 END;
|
|
END;
|
|
|
|
GO
|
|
|
|
GRANT EXECUTE ON [dbo].[VisitInfo] TO [eDosStation];
|
|
GO
|
|
|
|
--2024-09-06
|
|
|
|
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('[dbo].[Visit]') AND name='InitError')
|
|
ALTER TABLE [dbo].[Visit] ADD InitError INT
|
|
|
|
go
|
|
CREATE OR ALTER PROCEDURE [dbo].[VisitInitConfirm]
|
|
@ID_Station INT NULL,
|
|
@ID_Visit INT,
|
|
@InitError INT
|
|
as
|
|
UPDATE [dbo].[Visit] SET InitError=@InitError WHERE ID_Station=@ID_Station AND ID_Visit=@ID_Visit;
|
|
go
|
|
GRANT EXECUTE ON [dbo].[VisitInitConfirm] TO [eDosStation];
|
|
GO
|
|
ALTER TABLE DBO.PersonInfoSnapshot ADD Info XML;
|
|
GO
|
|
IF OBJECT_ID('[dbo].[LocalEPD]') IS NULL BEGIN
|
|
CREATE TABLE [dbo].[LocalEPD] ( [ID_STATION] INT NOT NULL , [EPD_InternalID] VARCHAR(8) NOT NULL, [ID_EPD] INT NOT NULL, [LastUsed] DATETIME null, PRIMARY KEY([ID_STATION],[EPD_InternalID]) )
|
|
end
|
|
GO
|
|
CREATE OR ALTER PROCEDURE [dbo].[VisitInit] @PersID INT,
|
|
@ID_Task INT,
|
|
@Inst_CODE INT,
|
|
@EPD_InternalID INT,
|
|
@isBG BIT,
|
|
@EPDVisitID INT = NULL OUTPUT,
|
|
@ID_Station INT NULL,
|
|
@ID_Visit INT,
|
|
@ENTRY_EPD_CLOCK DECIMAL(10, 0) NULL,
|
|
@epdType TINYINT = NULL,
|
|
@InitError INT = 0
|
|
AS
|
|
--Local !!
|
|
DECLARE @ID_EPD INT ;
|
|
DECLARE @now DATETIME = GETDATE() ;
|
|
|
|
IF @ID_Station IS NULL
|
|
SELECT
|
|
@ID_Station = [ID_Station]
|
|
FROM [dbo].[StationSettings]
|
|
WHERE [PCNr] = HOST_NAME() ;
|
|
|
|
SELECT
|
|
@ID_EPD = [ID_EPD]
|
|
FROM [dbo].[EPD]
|
|
WHERE [EPD_InternalID] = @EPD_InternalID ;
|
|
|
|
IF @ID_EPD IS NULL BEGIN
|
|
INSERT [dbo].[EPD]([EPD_InternalID], [EPD_sn], [EPDType])
|
|
VALUES(@EPD_InternalID, CONVERT(VARCHAR(8), @EPD_InternalID), CASE WHEN @epdType IS NOT NULL
|
|
THEN @epdType
|
|
WHEN @isBG = 0
|
|
THEN 2
|
|
ELSE 0
|
|
END) ;
|
|
|
|
SET @ID_EPD = SCOPE_IDENTITY() ;
|
|
END ;
|
|
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT
|
|
*
|
|
FROM [dbo].[LocalEPD]
|
|
WHERE [ID_Station] = @ID_Station
|
|
AND [EPD_InternalID] = @EPD_InternalID
|
|
)
|
|
INSERT [dbo].[LocalEPD]([ID_EPD], [ID_Station], [EPD_InternalID], LastUsed)
|
|
VALUES(@ID_EPD, @ID_Station, CONVERT(VARCHAR(8), @EPD_InternalID), @now) ;
|
|
ELSE
|
|
UPDATE
|
|
[dbo].[LocalEPD]
|
|
SET
|
|
[LastUsed] = @now
|
|
WHERE [ID_Station] = @ID_Station
|
|
AND [EPD_InternalID] = @EPD_InternalID ;
|
|
|
|
|
|
|
|
|
|
INSERT [dbo].[Visit]([ID_Station], [PersID], [Inst_CODE], [ID_Visit], [ID_Task], [EntryTime], [ID_EPD], [isBG], [isComplete], [isDeleted], [isAlarmCleared], [isAlarm], [isManualExit], [ENTRY_EPD_CLOCK], [EXIT_EPD_CLOCK], [epdType], [epdID], [InitError] )
|
|
VALUES(@ID_Station, @PersID, @Inst_CODE, @ID_Visit, @ID_Task, @now, @ID_EPD, @isBG, 0, 0, 0, 0, 0, @ENTRY_EPD_CLOCK, @ENTRY_EPD_CLOCK, @epdType, @EPD_InternalID, @InitError ) ;
|
|
|
|
SET @EPDVisitID = @ID_Visit * 100+@ID_Station ;
|
|
|
|
GO
|
|
USE [eDosLocal]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[GetPersonInfo] Script Date: 9/11/2024 10:10:40 AM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
CREATE OR ALTER PROCEDURE [dbo].[GetPersonInfo]
|
|
@CSN CHAR(14) = NULL,
|
|
@PersID INT = NULL,
|
|
@AllowMultipleEPD BIT = 0,
|
|
@CheckUser BIT = 1
|
|
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())
|
|
AND ([InitError] IS NULL OR [InitError]=0 );
|
|
|
|
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],
|
|
[AccessAllow] = CASE
|
|
WHEN @CheckUser = 0 THEN
|
|
1
|
|
ELSE
|
|
[p].[AccessAllow]
|
|
END,
|
|
[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
|
|
CREATE OR ALTER PROCEDURE [dbo].[GetPersonOverview] @PersID INT = NULL
|
|
AS
|
|
SELECT [p].[PersID],
|
|
[p].[Type],
|
|
[p].[FirstName],
|
|
[p].[LastName],
|
|
[p].[NickName],
|
|
[AccessAllow] = [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],
|
|
[isAgent] = CONVERT ( BIT,
|
|
CASE
|
|
WHEN [p].[isAgent] IS NULL THEN
|
|
0
|
|
ELSE
|
|
[p].[isAgent]
|
|
END
|
|
),
|
|
[info]
|
|
FROM [dbo].[PersonInfoSnapshot] [p]
|
|
WHERE [p].[PersID] = @PersID;
|
|
GO
|
|
|
|
GRANT EXECUTE ON [GetPersonOverview] TO [edosstation];
|
|
GO
|