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

INHVEXP.m

Go to the documentation of this file.
  1. INHVEXP ;BAR ; 24 Nov 95 15:02; PRINT EXCEPTIONS BETWEEN INH MAP AND LOCAL DATA
  1. ;;3.01;BHL IHS Interfaces with GIS;;JUL 01, 2001
  1. ;COPYRIGHT 1991-2000 SAIC
  1. EN ;Main entry point
  1. ;NEW statements
  1. N %ZIS,A,INEXIT,INHDR,INPAGE,X,ZTDESC,ZTIO,ZTRTN,ZTSAVE,INSYS,INOSYS,K,INFUNC,INFUNCN,INRECID,INDA,INDIC,INGL,INDE,X,N,F
  1. S U="^" K ^UTILITY($J)
  1. ENUSE ;User input
  1. ;Setup FileMan
  1. D ENV^UTIL
  1. ;System Check and verify by user
  1. ; INSYS = current system
  1. ; INOSYS = other system
  1. S INSYS=$$SYS^INHUTIL1()
  1. I '$L(INSYS) W *7,!!,"Sorry, I don't know what kind of system we're on.",! G QUIT
  1. W !!," I think this is a ",$$SYSNAME^INHUTIL1(INSYS)," system"
  1. ;Standard reader
  1. S Y=$$YN^UTSRD("Do you want to continue? ;1","") G:'+Y QUIT
  1. S INOSYS=$S(INSYS="SC":"VA",1:"SC")
  1. ;
  1. ;Device handling & Tasking logic
  1. K IOP S %ZIS("A")="QUEUE ON DEVICE: ",%ZIS("B")="",%ZIS="NQ",%ZIS("RM")="S^132" D ^%ZIS G:POP QUIT
  1. S IOM=132,IOP=ION_";"_IOST_";"_IOM_";"_IOSL
  1. I IO=IO(0) S %ZIS="" D ^%ZIS I POP W *7,!,"Sorry, unable to find device..." G QUIT
  1. I IO'=IO(0) S ZTDESC="Map File Exception Report",ZTIO=IOP,ZTRTN="ENQUE^INHVEXP" D G QUIT
  1. .F X="IN*","IO*" S ZTSAVE(X)=""
  1. .D ^%ZTLOAD
  1. ;
  1. ENQUE ;Taskman entry point
  1. ;
  1. ;*********************************************************
  1. ;Main loop thru 4090.1 x-ref
  1. N ND S ND="^INVD(4090.1,INSYS)"
  1. F S ND=$Q(ND) Q:$QS(ND,2)'=INSYS D
  1. .S INFUNC=$QS(ND,3),INRECID=$QS(ND,4),INDA=$QS(ND,5),BRCT=0
  1. .D FUNC
  1. .Q:INRECID=""
  1. .S INEX=0 D RECID
  1. .Q:INDA=""
  1. .D DA
  1. .K:INEX'>1 ^UTILITY($J,"EX",INFUNC,INRECID)
  1. .D:$L(INGL) LF
  1. ;initialize print variables
  1. S INPAGE=0,INEXIT=0,IOM=132
  1. D HSET,HEADER
  1. ;
  1. ;Loop thru ^UTILITY file and print
  1. S ND="^UTILITY($J,""MF"")",L=1
  1. F S ND=$Q(@ND) Q:$QS(ND,2)'="MS" D
  1. .S N=5,X=^(INFUNC),INFUNC=$QS(ND,3),INRECID=$QS(ND,4),INDA=$QS(ND,5),A=$QS(ND,6)
  1. .D WRITE
  1. .S N=10,X=$G(^(INRECID)) D:$L(X) WRITE
  1. .I INDA'="" S N=1,X=INDA_" "_INRECID_" "_$P($G(^INVD(4090.1,INDA,0)),"^",1) D WRITE
  1. .S L=0,N=$S($X<30:30,1:$X+2)
  1. .I A'="" S X=^UTILITY($J,"MF",INFUNC,INRECID,INDA,A) D:$L(X) WRITE
  1. .;Write out NON EXCLUDE conflicts
  1. .D:$D(^UTILITY($J,"EX",INFUNC)) WRITEE
  1. .;Call to output data pointer exceptions
  1. .D:$D(^UTILITY($J,"LF",INFUNC)) WRITEL
  1. I ($P(IOST,"-")["C")&('$D(IO("Q")))&(IO=IO(0)) R !,"Press <RETURN> to continue ",A:DTIME
  1. E W !!,"*** End Of Report ***",!,IOF
  1. G QUIT
  1. ;
  1. ;*********************************************************
  1. FUNC ;Verify map function exists and log error if not
  1. S INFUNCN=$P($G(^INVD(4090.2,INFUNC,0)),"^",1),INDIC=$G(^INVD(4090.2,INFUNC,INSYS)),INGL=""
  1. I '$L(INFUNCN) S ^UTILITY($J,"MF",INFUNC)="Map function "_INFUNC_" not defined and contains the following entries:" Q
  1. S ^UTILITY($J,"MF",INFUNC)="Map function "_INFUNC_" - "_INFUNCN_$S(+INDIC:" (file)",1:" (non-file)")
  1. Q:'+INDIC
  1. S INGL=$G(^DIC(INDIC,0,"GL"))
  1. I '$L(INGL) S ^UTILITY($J,"MF",INFUNC,0)="File #"_INDIC_" does not have a ""GL"" reference in ^DIC"
  1. Q
  1. ;
  1. RECID ;Processing at INRECID loop
  1. ;Quit if not a file reference
  1. S INDE="" Q:'+INDIC
  1. ;returns data element of function type - INDE
  1. ;set quotes around INRECID in case it's not a number
  1. S T=$C(34)_INRECID_$C(34) S INDE=$G(@(INGL_T_",0)"))
  1. Q
  1. ;
  1. DA ;DA MODULE - STARTS HERE
  1. ;Init INDAVD - DA VALIDATION FLAG
  1. ;Verify ien exists in 4090.1 and log error if not
  1. I '($D(^INVD(4090.1,INDA,0))#2) S ^UTILITY($J,"MF",INFUNC,INRECID,INDA,0)="Record does not exist in file 4090.1" Q
  1. ;
  1. ;Record valid records if INFUNC is invalid
  1. I '$L(INFUNCN) S ^UTILITY($J,"MF",INFUNC,INRECID,INDA,0)="Exists under undefined map function "_INFUNC
  1. ;
  1. ;Verify map function number matches x-ref map function
  1. S X=$P(^INVD(4090.1,INDA,0),"^",2) I X'=INFUNC D
  1. .S N=$P($G(^INVD(4090.2,X,0)),"^",1)
  1. .S ^UTILITY($J,"MF",INFUNC,INRECID,INDA,1)="Map function no. "_X_"-"_N_" does not match x-ref map no. "_INFUNC_"-"_INFUNCN
  1. ;
  1. ;Validate INRECID
  1. I +INDIC,'$L(INDE) S INDE=$G(@(INGL_(+INRECID)_",0)")) I $L(INDE) S ^UTILITY($J,"MF",INFUNC,INRECID,INDA,2)=INSYS_" Record ID """_INRECID_""" is not fully numeric but info was found under """_(+INRECID)_""""
  1. ;
  1. ;Verify record id number matches record id (INRECID)
  1. S X=$G(^INVD(4090.1,INDA,$S(INSYS="SC":1,1:10))) I X'=INRECID S ^UTILITY($J,"MF",INFUNC,INRECID,INDA,3)="Data element record id "_X_" does not match with x-ref id "_INRECID
  1. ;
  1. ;Verify data name matches data element name
  1. I +INDIC S X=$G(^INVD(4090.1,INDA,$S(INSYS="SC":2,1:11))),Y=$P(INDE,"^",1) I X'=Y,$D(^DD(INDIC,.01,0))#2 S C=$P(^DD(INDIC,.01,0),U,2) D Y^DIQ
  1. I +INDIC,X'=Y S ^UTILITY($J,"MF",INFUNC,INRECID,INDA,4)="Data element name "_X_" does not match with file entry "_Y
  1. ;
  1. ;Setup exclude array - INEX is non-exclude counter
  1. S ^UTILITY($J,"EX",INFUNC,INRECID,INDA)=+$G(^INVD(4090.1,INDA,$S(INSYS="SC":3,1:12)))
  1. I '+^(INDA) S INEX=INEX+1,^UTILITY($J,"LFX",INFUNC,INRECID)=""
  1. Q
  1. ;
  1. ;*********************************************************
  1. LF ;Check each data element points to a valid NOT EXCLUDE reference
  1. S X=0 F S X=$O(@(INGL_X_")")) Q:'+X I '$D(^UTILITY($J,"LFX",INFUNC,X)) S ^UTILITY($J,"LF",INFUNC,X)="Data element "_X_" - "_$P($G(@(INGL_X_",0)")),"^",1)_" does not have data pointing to it"
  1. Q
  1. ;*********************************************************
  1. ;
  1. N A
  1. I ($P(IOST,"-")["C")&('$D(IO("Q")))&(IO=IO(0))&(INPAGE>0) R !,"Press <RETURN> to continue ",A:DTIME I A[U S INEXIT=1 Q
  1. S INPAGE=INPAGE+1 W @IOF
  1. S A=0 F S A=$O(INHDR(A)) Q:'A U IO W !,@INHDR(A)
  1. Q
  1. ;
  1. WRITE ;output a line
  1. I ($Y>(IOSL-3))&(INPAGE>0)&(L) D HEADER
  1. Q:INEXIT
  1. I L W !,?N,X Q
  1. K F D FORMAT^UTIL(X,(132-N),"F") W ?N,F(1) F F=2:1 Q:'$D(F(F)) W !?N,F(F)
  1. S L=1 Q
  1. ;
  1. WRITEE ;output exclude problems
  1. S N=5,L=1,X="These multiple NOT EXCLUDE's exist:" D WRITE
  1. ;
  1. S N=3,INRECID="" F S INRECID=$O(^UTILITY($J,"EX",INFUNC,INRECID)) Q:INRECID="" D
  1. .S INDA="" F S INDA=$O(^UTILITY($J,"EX",INFUNC,INRECID,INDA)) Q:INDA="" I '^(INDA) S X="Local file "_INDA_" of "_INSYS_" record id "_INRECID_" is not excluded" D WRITE
  1. Q
  1. ;
  1. WRITEL ;Output data exceptions
  1. S N=5,L=1,X="These records do not have data pointing to them:" D WRITE
  1. S N=3,INRECID="" F S INRECID=$O(^UTILITY($J,"LF",INFUNC,INRECID)) Q:INRECID="" S X=^(INRECID) D WRITE
  1. Q
  1. ;
  1. HSET ;set up header
  1. S Y=DT D DD^%DT
  1. S INHDR(1)="""Interface Exception Report for "_$$SYSNAME^INHUTIL1(INSYS)_" System"",?(IOM-22),"""_Y_" PAGE: "",INPAGE"
  1. S INHDR(2)=""" File # / Record ID / Name Exception Description"""
  1. S INHDR(4)="",$P(INHDR(4),"-",IOM-1)="",INHDR(4)=""""_INHDR(4)_""",!"
  1. Q
  1. ;
  1. QUIT ;exit module
  1. D ^%ZISC
  1. S IOP="",%ZIS="" D ^%ZIS U IO K IO("Q"),IOP,POP
  1. K ^UTILITY($J) ;CLEAN UP UTIL GLOB
  1. Q
  1. ;