1 | SCMSVZSC ;ALB/ESD HL7 ZSC Segment Validation ;05/08/95
|
---|
2 | ;;5.3;Scheduling;**44,66,143**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | ;
|
---|
5 | EN(ZSCARRY,HLQ,HLFS,VALERR,ENCPTR) ;
|
---|
6 | ; Entry point to return the HL7 ZSC (Stop Code) validation segment
|
---|
7 | ;
|
---|
8 | ; Input: ZSCARRY - Array of ZSC Segments
|
---|
9 | ; HLQ - HL7 null variable
|
---|
10 | ; HLFS - HL7 field separator
|
---|
11 | ;
|
---|
12 | ;
|
---|
13 | ; Output: 1 if ZSC passed validity check
|
---|
14 | ; Error message if ZSC failed validity check in form of:
|
---|
15 | ; -1^"xxx failed validity check" (xxx=element in ZSC segment)
|
---|
16 | ;
|
---|
17 | ;
|
---|
18 | N I,J,MSG,VALID,X,Z,ZSCSEG,CNT,SEG,SCSETID,DATA
|
---|
19 | S MSG="-1^Element in ZSC segment failed validity check"
|
---|
20 | S I=0,X="",ZSCARRY=$G(ZSCARRY),SEG="ZSC",(SCSETID,CNT)=1
|
---|
21 | S:(ZSCARRY="") ZSCARRY="^TMP(""VAFHL"",$J,""STOPCODE"")"
|
---|
22 | ;
|
---|
23 | F S I=+$O(@ZSCARRY@(I)) Q:'I D
|
---|
24 | . S J="",VALID(1)=1
|
---|
25 | . F S J=$O(@ZSCARRY@(I,J)) Q:J="" D
|
---|
26 | .. S ZSCSEG=$G(@ZSCARRY@(I,J)),ZSCSEG=$$CONVERT^SCMSVUT0(ZSCSEG,HLFS,HLQ)
|
---|
27 | .. D VALIDATE^SCMSVUT0(SEG,ZSCSEG,"0013",VALERR,.CNT)
|
---|
28 | .. I $G(@VALERR@(SEG,CNT-1))="0013" Q
|
---|
29 | .. F Z=1,2,3,31 DO
|
---|
30 | ... S DATA=$P(ZSCSEG,HLFS,+$E(Z,1,1))
|
---|
31 | ... I Z=31 S DATA=$$STPCOD(DATA,ENCPTR)
|
---|
32 | ... D VALIDATE^SCMSVUT0(SEG,DATA,$P($T(@(Z)),";",3),VALERR,.CNT)
|
---|
33 | ...Q
|
---|
34 | ..Q
|
---|
35 | .Q
|
---|
36 | ;
|
---|
37 | I '$D(VALID) D VALIDATE^SCMSVUT0(SEG,"","0013",VALERR,.CNT)
|
---|
38 | ;
|
---|
39 | ENQ Q $S($D(@VALERR@(SEG)):MSG,1:1)
|
---|
40 | ;
|
---|
41 | ;
|
---|
42 | ;- ZSC data elements validated
|
---|
43 | ;
|
---|
44 | STPCOD(DATA,ENCPTR) ;
|
---|
45 | N LP,ANS,STPARY
|
---|
46 | D SCODE^SCDXUTL0(ENCPTR,"STPARY")
|
---|
47 | I '$G(STPARY(0)) Q 0
|
---|
48 | S ANS=0
|
---|
49 | F LP=0:0 S LP=$O(STPARY(LP)) Q:'LP DO Q:+ANS>0
|
---|
50 | .N STPNOD
|
---|
51 | .S STPNOD=$G(^DIC(40.7,STPARY(LP),0))
|
---|
52 | .Q:STPNOD=""
|
---|
53 | .I $P(STPNOD,U,2)=DATA S ANS=+STPARY(LP)
|
---|
54 | .Q
|
---|
55 | Q ANS
|
---|
56 | ;
|
---|
57 | 1 ;;0035;HL7 SEGMENT NAME
|
---|
58 | 2 ;;A050;HL7 SEQUENTIAL NUMBER (SET ID)
|
---|
59 | 3 ;;A000;STOP CODE
|
---|
60 | 31 ;;A020;INACTIVE STOP CODE
|
---|