USE [LABORATORY] GO /****** Object: StoredProcedure [dbo].[Lab_Barcode_SaveMaster] Script Date: 09/02/2019 6:25:23 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO ALTER PROCEDURE [dbo].[Lab_Barcode_SaveMaster] @RefNum varchar(50), @IDNum varchar(12), @HospNum varchar(12), @Barcode varchar(20), @ItemID varchar(10), @SpecimenID varchar(4), @SectionID varchar(3) AS SET NOCOUNT ON; declare @RequestNum varchar(30), @CharLength as int, @Counter INT, @NewBarcode varchar(30), @NewRequestNum varchar(30), @NumberCharged as float set @CharLength = (select datalength(@Barcode)) set @NumberCharged = ( select top 1 convert(float,numberCharged) from Laboratory..tbLabMaster where RefNum = @RefNum and ItemID = @ItemID) --if @charlength=4 set @barcode = 'XXXXXXXX'+@barcode --else if @charlength=5 set @barcode = 'XXXXXXX'+@barcode --else if @charlength=6 set @Barcode = 'XXXXXX'+@Barcode --else if @CharLength = 7 set @Barcode = 'XXXXX'+ @Barcode --else if @CharLength = 8 set @Barcode = 'XXXX'+ @Barcode --else if @CharLength = 9 set @Barcode = 'XXX' + @Barcode --else if @CharLength = 10 set @Barcode = 'XX'+ @Barcode --else if @CharLength = 11 set @Barcode = 'X'+ @Barcode --else set @Barcode = @Barcode if @NumberCharged > 2 BEGIN SET @counter = 1 WHILE @Counter <= @NumberCharged BEGIN REGENERATE_2: /* ===> Update RequestNum(aka LabNumber) on Each Saving Loop */ SET @NewBarcode = @Barcode + 'X' + convert(varchar(3),@Counter); /* **************** Assign RefNum and RequestNum to Variables ****************** */ Set @RequestNum = (select RequestNum from Laboratory..tbLabMaster where RefNum = @RefNum and ItemID = @ItemID and RecordCount = @Counter ) Insert Into LABORATORY..tbLabBarcodingMaster (RequestNum, RefNum, IDNum, HospNum, Barcode, ItemID, SpecimenID, SectionID, CommStat, ResultStatus, ReceivedByLIS, RequestStatus, DateTransmitted,LISid,recordCount) Values (@RequestNum, @RefNum, @IDNum, @HospNum, @NewBarcode, @ItemID, @SpecimenID, @SectionID, 'X', 'X', 'N', 'X',getdate(),'HCLAB',@Counter) update LABORATORY..tbLabMaster set Barcode = @NewBarcode where RequestNum = @RequestNum and Barcode is NULL SET @Counter = @Counter + 1 CONTINUE END END; ELSE BEGIN /* **************** Assign RefNum and RequestNum to Variables ****************** */ select @RequestNum = RequestNum from Laboratory..tbLabMaster where RefNum = @RefNum and ItemID = @ItemID Insert Into LABORATORY..tbLabBarcodingMaster (RequestNum, RefNum, IDNum, HospNum, Barcode, ItemID, SpecimenID, SectionID, CommStat, ResultStatus, ReceivedByLIS, RequestStatus, DateTransmitted,LISid,recordCount) Values (@RequestNum, @RefNum, @IDNum, @HospNum, @Barcode, @ItemID, @SpecimenID, @SectionID, 'X', 'X', 'N', 'X',getdate(),'HCLAB',1) END