Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: SCMSVZSC

SCMSVZSC.m

Go to the documentation of this file.
  1. SCMSVZSC ;ALB/ESD HL7 ZSC Segment Validation ;05/08/95
  1. ;;5.3;Scheduling;**44,66,143**;Aug 13, 1993
  1. ;
  1. ;
  1. EN(ZSCARRY,HLQ,HLFS,VALERR,ENCPTR) ;
  1. ; Entry point to return the HL7 ZSC (Stop Code) validation segment
  1. ;
  1. ; Input: ZSCARRY - Array of ZSC Segments
  1. ; HLQ - HL7 null variable
  1. ; HLFS - HL7 field separator
  1. ;
  1. ;
  1. ; Output: 1 if ZSC passed validity check
  1. ; Error message if ZSC failed validity check in form of:
  1. ; -1^"xxx failed validity check" (xxx=element in ZSC segment)
  1. ;
  1. ;
  1. N I,J,MSG,VALID,X,Z,ZSCSEG,CNT,SEG,SCSETID,DATA
  1. S MSG="-1^Element in ZSC segment failed validity check"
  1. S I=0,X="",ZSCARRY=$G(ZSCARRY),SEG="ZSC",(SCSETID,CNT)=1
  1. S:(ZSCARRY="") ZSCARRY="^TMP(""VAFHL"",$J,""STOPCODE"")"
  1. ;
  1. F S I=+$O(@ZSCARRY@(I)) Q:'I D
  1. . S J="",VALID(1)=1
  1. . F S J=$O(@ZSCARRY@(I,J)) Q:J="" D
  1. .. S ZSCSEG=$G(@ZSCARRY@(I,J)),ZSCSEG=$$CONVERT^SCMSVUT0(ZSCSEG,HLFS,HLQ)
  1. .. D VALIDATE^SCMSVUT0(SEG,ZSCSEG,"0013",VALERR,.CNT)
  1. .. I $G(@VALERR@(SEG,CNT-1))="0013" Q
  1. .. F Z=1,2,3,31 DO
  1. ... S DATA=$P(ZSCSEG,HLFS,+$E(Z,1,1))
  1. ... I Z=31 S DATA=$$STPCOD(DATA,ENCPTR)
  1. ... D VALIDATE^SCMSVUT0(SEG,DATA,$P($T(@(Z)),";",3),VALERR,.CNT)
  1. ...Q
  1. ..Q
  1. .Q
  1. ;
  1. I '$D(VALID) D VALIDATE^SCMSVUT0(SEG,"","0013",VALERR,.CNT)
  1. ;
  1. ENQ Q $S($D(@VALERR@(SEG)):MSG,1:1)
  1. ;
  1. ;
  1. ;- ZSC data elements validated
  1. ;
  1. STPCOD(DATA,ENCPTR) ;
  1. N LP,ANS,STPARY
  1. D SCODE^SCDXUTL0(ENCPTR,"STPARY")
  1. I '$G(STPARY(0)) Q 0
  1. S ANS=0
  1. F LP=0:0 S LP=$O(STPARY(LP)) Q:'LP DO Q:+ANS>0
  1. .N STPNOD
  1. .S STPNOD=$G(^DIC(40.7,STPARY(LP),0))
  1. .Q:STPNOD=""
  1. .I $P(STPNOD,U,2)=DATA S ANS=+STPARY(LP)
  1. .Q
  1. Q ANS
  1. ;
  1. 1 ;;0035;HL7 SEGMENT NAME
  1. 2 ;;A050;HL7 SEQUENTIAL NUMBER (SET ID)
  1. 3 ;;A000;STOP CODE
  1. 31 ;;A020;INACTIVE STOP CODE