| 1 | SCMSVZCL ;ALB/ESD HL7 ZCL Segment Validation ; 11/9/99 2:28pm
|
---|
| 2 | ;;5.3;Scheduling;**44,66,180,239**;Aug 13, 1993
|
---|
| 3 | ;
|
---|
| 4 | ;
|
---|
| 5 | EN(ZCLARRY,HLQ,HLFS,VALERR,DFN) ;
|
---|
| 6 | ; Entry point to return the HL7 ZCL (Outpatient Classification) validation segment
|
---|
| 7 | ;
|
---|
| 8 | ; Input: ZCLARRY - Array of ZCL Segments
|
---|
| 9 | ; HLQ - HL7 null variable
|
---|
| 10 | ; HLFS - HL7 field separator
|
---|
| 11 | ; VALERR - Array to put the errors in
|
---|
| 12 | ; DFN - The patient's DFN
|
---|
| 13 | ;
|
---|
| 14 | ;
|
---|
| 15 | ; Output: 1 if ZCL passed validity check
|
---|
| 16 | ; Error message if ZCL failed validity check in form of:
|
---|
| 17 | ; -1^"xxx failed validity check" (xxx=element in ZCL segment)
|
---|
| 18 | ;
|
---|
| 19 | ;
|
---|
| 20 | N I,J,MSG,VALID,X,Z,ZCLSEG,SEG,CNT,DATA,SCSETID,VAR,SCCLASS,VALUE,TYPE
|
---|
| 21 | S VALID=1,MSG="-1^Element in ZCL segment failed validity check"
|
---|
| 22 | S I=0,J="",ZCLARRY=$G(ZCLARRY),SEG="ZCL",(SCSETID,CNT)=1
|
---|
| 23 | S:(ZCLARRY="") ZCLARRY="^TMP(""VAFHL"",$J,""CLASS"")"
|
---|
| 24 | ;
|
---|
| 25 | ;- Validate classification fields
|
---|
| 26 | F S I=+$O(@ZCLARRY@(I)) Q:'I F S J=$O(@ZCLARRY@(I,J)) Q:J="" D
|
---|
| 27 | . S VALID=1
|
---|
| 28 | . S ZCLSEG=$G(@ZCLARRY@(I,J))
|
---|
| 29 | . S ZCLSEG=$$CONVERT^SCMSVUT0(ZCLSEG,HLFS,HLQ)
|
---|
| 30 | . D VALIDATE^SCMSVUT0(SEG,ZCLSEG,"0012",VALERR,.CNT)
|
---|
| 31 | . I $G(@VALERR@(SEG,CNT-1))="0012" Q
|
---|
| 32 | . S TYPE=$P(ZCLSEG,HLFS,3)
|
---|
| 33 | . F Z=1,2,3,32,4,41 DO
|
---|
| 34 | .. S DATA=$P(ZCLSEG,HLFS,$E(Z,1,1))
|
---|
| 35 | .. ;
|
---|
| 36 | .. ;MST check for type 5 encounter 1
|
---|
| 37 | .. I (Z=32),DATA'=5 Q
|
---|
| 38 | .. I (Z=32),DATA=5 S VALUE=$P(ZCLSEG,HLFS,4) Q:VALUE'=1
|
---|
| 39 | .. ;
|
---|
| 40 | .. D VALIDATE^SCMSVUT0(SEG,DATA,$P($T(@(Z)),";",3),VALERR,.CNT)
|
---|
| 41 | .. K VALUE
|
---|
| 42 | .. Q
|
---|
| 43 | . Q
|
---|
| 44 | ;
|
---|
| 45 | I '$D(VALID) D VALIDATE^SCMSVUT0(SEG,"","0012",VALERR,.CNT)
|
---|
| 46 | ;
|
---|
| 47 | ENQ Q $S($D(@VALERR@(SEG)):MSG,1:1)
|
---|
| 48 | ;
|
---|
| 49 | ;
|
---|
| 50 | ;- ZCL data elements validated
|
---|
| 51 | ;
|
---|
| 52 | 1 ;;0035;HL7 SEGMENT NAME
|
---|
| 53 | 2 ;;9150;HL7 SEQUENTIAL NUMBER (SET ID)
|
---|
| 54 | 3 ;;9000;CLASSIFICATION TYPE
|
---|
| 55 | 32 ;;9030;MST status inconsistent with classification type
|
---|
| 56 | 4 ;;9050;Answer to classification questions missing
|
---|
| 57 | 41 ;;9020;Veteran status inconsistent with classification type
|
---|