1 | DIV ;SFISC/GFT-VERIFY FLDS ;10:06 AM 28 Jun 1999
|
---|
2 | ;;22.0;VA FileMan;**7**;Mar 30, 1999
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | N DIUTIL,DIVDAT,DIVFIL,DIVMODE,DIVPG,POP S DIUTIL="VERIFY FIELDS"
|
---|
5 | K J
|
---|
6 | S Q="""",S=";",V=0,P=0,I(0)=DIU,@("(A,J(0))=+$P("_DIU_"0),U,2)")
|
---|
7 | I $O(^(0))'>0 W $C(7)," NO ENTRIES ON FILE!" Q
|
---|
8 | DIC S DIC="^DD(A,",DIC(0)="EZ",DIC("W")="W:$P(^(0),U,2) "" (multiple)"""
|
---|
9 | S DIC("S")="S %=$P(^(0),U,2) I %'[""C"",$S('%:1,1:$P(^DD(+%,.01,0),U,2)'[""W"")"
|
---|
10 | W !,"VERIFY WHICH "_$P(^DD(A,0),U)_": " R X:DTIME Q:U[X
|
---|
11 | I X="ALL" D ALL G Q:$D(DIRUT) I Y S DIVMODE="A" D DEVSEL G:$G(POP) Q D INIT,FLDS G Q^DIVR:DQI'>0!$D(DIRUT)
|
---|
12 | D ^DIC K DQI,^UTILITY("DIVR",$J)
|
---|
13 | I Y<0 W:X?1."?" !?3,"You may enter ALL to verify every field at this level of the file.",! G DIC
|
---|
14 | S DR=$P(Y(0),U,2) I DR S J(V)=A,P=+Y,V=V+1,A=+DR,I(V)=$P($P(Y(0),U,4),S,1) S:+I(V)'=I(V) I(V)=Q_I(V)_Q G DIC
|
---|
15 | D DEVSEL G:$G(POP) Q D INIT
|
---|
16 | 1 F T="N","D","P","S","V","F" Q:DR[T
|
---|
17 | F W="FREE TEXT","SET OF CODES","DATE","NUMERIC","POINTER","VARIABLE POINTER","K" I T[$E(W) S:W="K" W="MUMPS" W " ",W Q
|
---|
18 | K DA S DIVZ=$P(Y(0),U,3),DDC=$P(Y(0),U,5,99),(DIFLD,DA)=+Y
|
---|
19 | G ^DIVR
|
---|
20 | ;
|
---|
21 | Q K DIR,DIRUT,N,P,Q,S,V,C
|
---|
22 | Q
|
---|
23 | ;
|
---|
24 | ALL S DIR(0)="Y",DIR("??")="^D H^DIV"
|
---|
25 | S DIR("A")="DO YOU MEAN ALL THE FIELDS IN THE FILE"
|
---|
26 | D ^DIR K DIR S X="ALL"
|
---|
27 | Q
|
---|
28 | ;
|
---|
29 | FLDS S DQI=0 F S DQI=$O(^DD(A,DQI)) Q:DQI'>0 S Y=DQI,Y(0)=^(Y,0),DR=$P(Y(0),U,2) D Q:$D(DIRUT)
|
---|
30 | .I DR,$P(^DD(+DR,.01,0),U,2)["W" Q
|
---|
31 | .I DR D NEXTLVL Q
|
---|
32 | .I DR'["C" D Q:$D(DIRUT) W "--",$P(Y(0),U),"--" D 1 Q
|
---|
33 | .. N DIVI F DIVI=1:1:3 D LF^DIVR Q:$D(DIRUT)
|
---|
34 | Q
|
---|
35 | NEXTLVL ;
|
---|
36 | N A,P,DE,DA,DQI,I,J,V S DQI=0
|
---|
37 | S A=+DR,P=+Y N Y,DR D IJ^DIVU(A)
|
---|
38 | D FLDS
|
---|
39 | Q
|
---|
40 | H W !!?5,"YES means that every field at this level in the file will"
|
---|
41 | W !?5,"be checked to see if it conforms to the input transform."
|
---|
42 | W !!?5,"NO means that ALL will be used to lookup a field in the"
|
---|
43 | W !?5,"file which begins with the letters ALL, e.g., ALLERGIES."
|
---|
44 | Q
|
---|
45 | VER(DIVRFILE,DIVRREC,DIVRDR,DIVROUT) ;
|
---|
46 | ;DIVRFILE = (sub)file number
|
---|
47 | ;DIVRREC = template, or ien-string of records to be verified
|
---|
48 | ;DIVRDR = list of fields to be verified (defaults to ALL)
|
---|
49 | ;DIVROUT = output array listing the records that had problems
|
---|
50 | G ^DIVR1
|
---|
51 | DIVROUT I $G(DIVROUT)="" D X Q
|
---|
52 | I $E(DIVROUT)="[" D Q
|
---|
53 | . N Y,COUNT,Z
|
---|
54 | . D DIBT^DIVU(DIVROUT,.Y,DIVRFI0) Q:Y'>0
|
---|
55 | . K ^DIBT(+Y,1)
|
---|
56 | . S (COUNT,Z)=0
|
---|
57 | . F S Z=$O(^TMP("DIVR1",$J,Z)) Q:Z="" S COUNT=COUNT+1,^DIBT(+Y,1,Z)=""
|
---|
58 | . I COUNT S ^DIBT(+Y,"QR")=DT_U_COUNT
|
---|
59 | . D X
|
---|
60 | M @DIVROUT@(1)=^TMP("DIVR1",$J)
|
---|
61 | X K ^TMP("DIVR1",$J)
|
---|
62 | Q
|
---|
63 | ;
|
---|
64 | INIT ;Get header info and print first header
|
---|
65 | N %,%H,X,Y
|
---|
66 | K DIRUT
|
---|
67 | ;
|
---|
68 | S %H=$H D YX^%DTC
|
---|
69 | S DIVDAT=$P(Y,"@")_" "_$P($P(Y,"@",2),":",1,2)_" PAGE "
|
---|
70 | ;
|
---|
71 | I $D(^DIC(A,0))#2 S DIVFIL=$P(^(0),U)_" FILE (#"_A_")"
|
---|
72 | E I $D(^DD(A,0,"NM")) S DIVFIL=$O(^("NM",""))_" SUB-FILE (#"_A_")"
|
---|
73 | E S DIVFIL=""
|
---|
74 | ;
|
---|
75 | U IO
|
---|
76 | W:IOST?1"C-".E @IOF
|
---|
77 | D HDR^DIVR
|
---|
78 | Q
|
---|
79 | ;
|
---|
80 | DEVSEL ;Prompt for device
|
---|
81 | D Q:$G(POP)
|
---|
82 | . N %ZIS,A,I,J,T,V,X,Y,Z
|
---|
83 | . S %ZIS=$E("Q",$D(^%ZTSK)>0)
|
---|
84 | . W ! D ^%ZIS
|
---|
85 | ;
|
---|
86 | I $D(IO("Q")),$D(^%ZTSK) D S POP=1
|
---|
87 | . S ZTRTN="ENQUEUE^DIV"
|
---|
88 | . S ZTDESC="Verify Fields Report for File #"_A
|
---|
89 | . N %,DIVA,DIVI,DIVJ,DIVT,DIVV,DIVY,DIVZ
|
---|
90 | . M DIVA=A,DIVI=I,DIVJ=J,DIVT=T,DIVV=V,DIVY=Y,DIVZ=Z
|
---|
91 | . F %="DIU","DIUTIL","DIVMODE","DIVA","DIVI","DIVI(","DIVJ","DIVJ(","DIVV","DIVZ" S ZTSAVE(%)=""
|
---|
92 | . I $G(DIVMODE)'="A" F %="DIVY","DIVY(","DR" S ZTSAVE(%)=""
|
---|
93 | . I $G(DIVMODE)="C" F %="DA","DDC","DIFLD","DIVT" S ZTSAVE(%)=""
|
---|
94 | . D ^%ZTLOAD
|
---|
95 | . I $D(ZTSK)#2 W !,"Report queued!",!,"Task number: "_$G(ZTSK),!
|
---|
96 | . E W !,"Report canceled!",!
|
---|
97 | . K ZTSK
|
---|
98 | . S IOP="HOME" D ^%ZIS
|
---|
99 | Q
|
---|
100 | ;
|
---|
101 | ENQUEUE ;Entry point for queued reports
|
---|
102 | M A=DIVA,I=DIVI,J=DIVJ,T=DIVT,V=DIVV,Y=DIVY,Z=DIVZ
|
---|
103 | K DIVA,DIVI,DIVJ,DIVT,DIVV,DIVY,DIVZ
|
---|
104 | S Q="""",S=";"
|
---|
105 | ;
|
---|
106 | D INIT
|
---|
107 | I $G(DIVMODE)="A" D FLDS,Q^DIVR Q
|
---|
108 | I $G(DIVMODE)="C" D ^DIVR Q
|
---|
109 | D 1
|
---|
110 | Q
|
---|