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

BTPWVVAL.m

Go to the documentation of this file.
  1. BTPWVVAL ;VNGT/HS/ALA-CMET VDEF Validation Program ; 03 Nov 2009 5:46 PM
  1. ;;1.0;CARE MANAGEMENT EVENT TRACKING;;Feb 07, 2011
  1. ;
  1. VAL(DATA,VFILE,PARMS) ;EP -- BTPW VFILE DATA VALIDATION
  1. ;
  1. ;Input
  1. ; VFILE - The vfile number or name
  1. ; PARMS - The parameters being checked for validation
  1. ;
  1. NEW UID,II,BQ,LIST,BN,PDATA,NAME,VALUE,HDR,CODN,VALID,VALFLD,BI,VFLD,TYPE,X,RESULT
  1. NEW VFIEN,MSG,HNDLR,IEN
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BTPWVVAL",UID))
  1. K @DATA
  1. S II=0,MSG=""
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BTPWVVAL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. S VFILE=$G(VFILE,"") I VFILE="" S BMXSEC="RPC Failed: No Vfile selected" Q
  1. S VFIEN=$$FIND1^DIC(90506.3,"","MO",VFILE,"","","ERROR")
  1. ;
  1. S @DATA@(II)="I00010RESULT^T00100MSG^T00001HANDLER^I00010IEN"_$C(30)
  1. ; Get list of parameters
  1. S PARMS=$G(PARMS,"")
  1. I PARMS="" D
  1. . S LIST="",BN=""
  1. . F S BN=$O(PARMS(BN)) Q:BN="" S LIST=LIST_PARMS(BN)
  1. . K PARMS
  1. . S PARMS=LIST
  1. . K LIST
  1. ;
  1. I PARMS="" S II=II+1,@DATA@(II)="1^"_$G(MSG)_U_$G(HNDLR)_U_$G(IEN)_$C(30) G DONE
  1. ; Parse parameters
  1. F BQ=1:1:$L(PARMS,$C(28)) D Q:$G(BMXSEC)'=""
  1. . S PDATA=$P(PARMS,$C(28),BQ) Q:PDATA=""
  1. . S NAME=$P(PDATA,"=",1),VALUE=$P(PDATA,"=",2,99)
  1. . S @NAME=VALUE
  1. . ; If value is BQIDFN, it exists at the PCC Visit level not individual
  1. . ; V File level.
  1. . I VFILE'=9000010&(NAME="BQIDFN"!(NAME="APCDDATE")) Q
  1. . S CODN=$O(^BQI(90506.3,VFIEN,10,"AC",NAME,""))
  1. . I CODN="" S BMXSEC="RPC Failed: Parameter does not exist for this Vfile" Q
  1. . I $G(VALID)="" S VALID=$P($G(^BQI(90506.3,VFIEN,10,CODN,2)),U,2)
  1. . I $G(VALFLD)="" S VALFLD=$P($G(^BQI(90506.3,VFIEN,10,CODN,2)),U,1)
  1. ;
  1. ; Check that values exist for all fields needed for the validation
  1. F BI=1:1:$L(VALFLD,";") S VFLD=$P(VALFLD,";",BI) D
  1. . I VFLD["*" S VFLD=$$STRIP^XLFSTR(VFLD,"*") Q
  1. . I $G(@VFLD)="" S BMXSEC="RPC Failed: Missing validation value for "_VFLD
  1. I $G(BMXSEC)'="" Q
  1. ;
  1. S VALID=$TR(VALID,"~","^"),RESULT=0
  1. ; Execute the validation tag
  1. D @VALID
  1. S II=II+1,@DATA@(II)=RESULT_U_$G(MSG)_U_$G(HNDLR)_U_$G(IEN)_$C(30)
  1. ; Clean up validation variables
  1. F BI=1:1:$L(VALFLD,";") D
  1. . S VFLD=$P(VALFLD,";",BI),VFLD=$$STRIP^XLFSTR(VFLD,"*")
  1. . K @VFLD
  1. ;
  1. DONE ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. ERR ;
  1. D ^%ZTER
  1. NEW Y,ERRDTM
  1. S Y=$$NOW^XLFDT() X ^DD("DD") S ERRDTM=Y
  1. S BMXSEC="Recording that an error occurred at "_ERRDTM
  1. I $D(II),$D(DATA) S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. SIG(BTPWSIGN) ;EP - Signature validation
  1. D SIGCHK^BMXRPC3(.RESULT,BTPWSIGN)
  1. I RESULT=0 S RESULT=-1,MSG="Signature not validated" Q
  1. S RESULT=1
  1. Q