SCMSVZIR ;ALB/ESD HL7 ZIR Segment Validation ;05/08/95
;;5.3;Scheduling;**44,55,66**;Aug 13, 1993
;
;
EN(ZIRSEG,HLQ,HLFS,VALERR) ;
; Entry point to return the HL7 ZIR (Income Relation) validation segment
;
; Input: ZIRSEG - ZIR Segment
; HLQ - HL7 null variable
; HLFS - HL7 field separator
; VALERR - Array to put the errors in
;
; Output: 1 if ZIR passed validity check
; Error message if ZIR failed validity check in form of:
; -1^"xxx failed validity check" (xxx=element in ZIR segment)
;
;
N I,MSG,X,SEG,CNT,DATA
S MSG="-1^Element in ZIR segment failed validity check",SEG="ZIR",CNT=1
S ZIRSEG=$G(ZIRSEG)
D VALIDATE^SCMSVUT0(SEG,ZIRSEG,"0011",VALERR,.CNT)
I $D(@VALERR@(SEG)) G ENQ
;
;- Convert HLQ to null
S ZIRSEG=$$CONVERT^SCMSVUT0(ZIRSEG,HLFS,HLQ)
;
;- Validate data elements
N DATA1
F I=1,12,13,14,90 D I I=14,$G(@VALERR@(SEG,CNT-1))=8100 Q
. S DATA=$P(ZIRSEG,HLFS,I)
. D VALIDATE^SCMSVUT0(SEG,$S(I=90:DATA1,1:DATA),$P($T(@(I)),";",3),VALERR,.CNT)
. I I=12 S $P(DATA1,U,1)=DATA
. I I=14 S $P(DATA1,U,2)=DATA
;
ENQ Q $S($D(@VALERR@(SEG)):MSG,1:1)
;
;
ERR ;;Invalid or missing patient income data for encounter (HL7 ZIR segment)
;
;
;- ZIR data elements validated
;
1 ;;0035;HL7 SEGMENT NAME
12 ;;8050;NUMBER OF DEPENDENTS
13 ;;8150;PATIENT INCOME
14 ;;8100;MEANS TEST INDICATOR
90 ;;8070;Number of dependents inconstitentwith means test
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSCMSVZIR 1489 printed Oct 16, 2024@18:42:52 Page 2
SCMSVZIR ;ALB/ESD HL7 ZIR Segment Validation ;05/08/95
+1 ;;5.3;Scheduling;**44,55,66**;Aug 13, 1993
+2 ;
+3 ;
EN(ZIRSEG,HLQ,HLFS,VALERR) ;
+1 ; Entry point to return the HL7 ZIR (Income Relation) validation segment
+2 ;
+3 ; Input: ZIRSEG - ZIR Segment
+4 ; HLQ - HL7 null variable
+5 ; HLFS - HL7 field separator
+6 ; VALERR - Array to put the errors in
+7 ;
+8 ; Output: 1 if ZIR passed validity check
+9 ; Error message if ZIR failed validity check in form of:
+10 ; -1^"xxx failed validity check" (xxx=element in ZIR segment)
+11 ;
+12 ;
+13 NEW I,MSG,X,SEG,CNT,DATA
+14 SET MSG="-1^Element in ZIR segment failed validity check"
SET SEG="ZIR"
SET CNT=1
+15 SET ZIRSEG=$GET(ZIRSEG)
+16 DO VALIDATE^SCMSVUT0(SEG,ZIRSEG,"0011",VALERR,.CNT)
+17 IF $DATA(@VALERR@(SEG))
GOTO ENQ
+18 ;
+19 ;- Convert HLQ to null
+20 SET ZIRSEG=$$CONVERT^SCMSVUT0(ZIRSEG,HLFS,HLQ)
+21 ;
+22 ;- Validate data elements
+23 NEW DATA1
+24 FOR I=1,12,13,14,90
Begin DoDot:1
+25 SET DATA=$PIECE(ZIRSEG,HLFS,I)
+26 DO VALIDATE^SCMSVUT0(SEG,$SELECT(I=90:DATA1,1:DATA),$PIECE($TEXT(@(I)),";",3),VALERR,.CNT)
+27 IF I=12
SET $PIECE(DATA1,U,1)=DATA
+28 IF I=14
SET $PIECE(DATA1,U,2)=DATA
End DoDot:1
IF I=14
IF $GET(@VALERR@(SEG,CNT-1))=8100
QUIT
+29 ;
ENQ QUIT $SELECT($DATA(@VALERR@(SEG)):MSG,1:1)
+1 ;
+2 ;
ERR ;;Invalid or missing patient income data for encounter (HL7 ZIR segment)
+1 ;
+2 ;
+3 ;- ZIR data elements validated
+4 ;
1 ;;0035;HL7 SEGMENT NAME
12 ;;8050;NUMBER OF DEPENDENTS
13 ;;8150;PATIENT INCOME
14 ;;8100;MEANS TEST INDICATOR
90 ;;8070;Number of dependents inconstitentwith means test