| [613] | 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
 | 
|---|