| 1 | MCARVCHK ;HIRMFO/DAD-MEDICINE VIEW FILE SANITY CHECK ;5/23/96  11:09
 | 
|---|
| 2 |  ;;2.3;Medicine;;09/13/1996
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  K %ZIS,IOP S %ZIS="QM" W ! D ^%ZIS G:POP EXIT
 | 
|---|
| 5 |  I $D(IO("Q")) D  G EXIT
 | 
|---|
| 6 |  . S ZTRTN="TASK^MCARVCHK"
 | 
|---|
| 7 |  . S ZTDESC="Medicine View file (#690.2) sanity check report"
 | 
|---|
| 8 |  . D ^%ZTLOAD
 | 
|---|
| 9 |  . Q
 | 
|---|
| 10 | TASK ;
 | 
|---|
| 11 |  K ^TMP("MCARVCHK",$J)
 | 
|---|
| 12 |  S (MCD0,MCERR)=0
 | 
|---|
| 13 |  F  S MCD0=$O(^MCAR(690.2,MCD0)) Q:MCD0'>0  D MAIN
 | 
|---|
| 14 | PRINT ;
 | 
|---|
| 15 |  U IO K MCUNDL
 | 
|---|
| 16 |  S MCEXIT=0,MCPAGE=1,$P(MCUNDL,"-",81)=""
 | 
|---|
| 17 |  S MCTODAY=$$FMTE^XLFDT(DT)
 | 
|---|
| 18 |  D HEADER
 | 
|---|
| 19 |  I $O(^TMP("MCARVCHK",$J,0))'>0 D  G EXIT
 | 
|---|
| 20 |  . W !!,"NO PROBLEMS FOUND"
 | 
|---|
| 21 |  . Q
 | 
|---|
| 22 |  S MCERR=0
 | 
|---|
| 23 |  F  S MCERR=$O(^TMP("MCARVCHK",$J,MCERR)) Q:MCERR'>0!MCEXIT  D
 | 
|---|
| 24 |  . S MCDATA=^TMP("MCARVCHK",$J,MCERR)
 | 
|---|
| 25 |  . S MCNAME=$P(MCDATA,U),MCFILE=$P(MCDATA,U,2),MCTEXT=$P(MCDATA,U,3)
 | 
|---|
| 26 |  . W !!,MCNAME,?70,MCFILE,!?5,MCTEXT
 | 
|---|
| 27 |  . I $Y>(IOSL-4) D PAUSE,HEADER
 | 
|---|
| 28 |  . Q
 | 
|---|
| 29 | EXIT ;
 | 
|---|
| 30 |  D ^%ZISC
 | 
|---|
| 31 |  S:$D(ZTQUEUED) ZTREQ="@"
 | 
|---|
| 32 |  K %ZIS,DIR,DIROUT,DIRUT,DTOUT,DUOUT,MCD0,MCD1,MCD2,MCDATA,MCERR,MCEXIT
 | 
|---|
| 33 |  K MCFIELD,MCFILE,MCFL,MCNAME,MCPAGE,MCSUBFIL,MCSUBFLD,MCTEXT,MCTODAY
 | 
|---|
| 34 |  K MCUNDL,MCUP,MCZERO,POP,X,Y,ZTDESC,ZTRTN,^TMP("MCARVCHK",$J)
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 | MAIN ;
 | 
|---|
| 37 |  K ^TMP("MCSUB",$J)
 | 
|---|
| 38 |  S MCZERO=$G(^MCAR(690.2,MCD0,0))
 | 
|---|
| 39 |  S MCNAME=$P(MCZERO,U),MCFILE=+$P(MCZERO,U,2)
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 |  ; *** Check the Primary File ***
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 |  I $$VFILE^DILFD(MCFILE)'>0 D  Q
 | 
|---|
| 44 |  . D ERR("Primary file # "_MCFILE_" does not exist")
 | 
|---|
| 45 |  . Q
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 |  ; *** Check the Field mult ***
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 |  I $O(^MCAR(690.2,MCD0,1,0))'>0 D
 | 
|---|
| 50 |  . D ERR("No Fields specified")
 | 
|---|
| 51 |  . Q
 | 
|---|
| 52 |  S MCD1=0
 | 
|---|
| 53 |  F  S MCD1=$O(^MCAR(690.2,MCD0,1,MCD1)) Q:MCD1'>0  D
 | 
|---|
| 54 |  . S MCFIELD=$P($G(^MCAR(690.2,MCD0,1,MCD1,0)),U)
 | 
|---|
| 55 |  . I $$VFIELD^DILFD(MCFILE,MCFIELD)'>0 D  Q
 | 
|---|
| 56 |  .. D ERR("Field # "_MCFILE_","_MCFIELD_" does not exist")
 | 
|---|
| 57 |  .. Q
 | 
|---|
| 58 |  . S MCSUBFIL=+$$GET1^DID(MCFILE,MCFIELD,"","SPECIFIER")
 | 
|---|
| 59 |  . I MCSUBFIL D
 | 
|---|
| 60 |  .. S MC=($O(^DD(MCSUBFIL,.01))'>0)&($D(^DD(MCSUBFIL,.01,0))#2)
 | 
|---|
| 61 |  .. S MCTEXT="Field # "_MCFILE_","_MCFIELD_" missing Sub-File/Field"
 | 
|---|
| 62 |  .. S MCTEXT=MCTEXT_" # "_MCSUBFIL_","_$S(MC:".01",1:"???")
 | 
|---|
| 63 |  .. S ^TMP("MCSUB",$J,MCSUBFIL)=MCTEXT
 | 
|---|
| 64 |  .. Q
 | 
|---|
| 65 |  . Q
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 |  ; *** Check the Sub-Field mult ***
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 |  S MCD1=0
 | 
|---|
| 70 |  F  S MCD1=$O(^MCAR(690.2,MCD0,2,MCD1)) Q:MCD1'>0  D
 | 
|---|
| 71 |  . S MCSUBFIL=+$P($G(^MCAR(690.2,MCD0,2,MCD1,0)),U)
 | 
|---|
| 72 |  . I $G(^DD(MCSUBFIL,0))="" Q
 | 
|---|
| 73 |  . I $O(^MCAR(690.2,MCD0,2,MCD1,1,0))'>0 D
 | 
|---|
| 74 |  .. D ERR("No Sub-Fields specified for Sub-File # "_MCSUBFIL)
 | 
|---|
| 75 |  .. Q
 | 
|---|
| 76 |  . S MCD2=0
 | 
|---|
| 77 |  . F  S MCD2=$O(^MCAR(690.2,MCD0,2,MCD1,1,MCD2)) Q:MCD2'>0  D
 | 
|---|
| 78 |  .. S MCSUBFLD=+$P($G(^MCAR(690.2,MCD0,2,MCD1,1,MCD2,0)),U)
 | 
|---|
| 79 |  .. I $$VFIELD^DILFD(MCSUBFIL,MCSUBFLD)'>0 D  Q
 | 
|---|
| 80 |  ... D ERR("Sub-Field # "_MCSUBFIL_","_MCSUBFLD_" does not exist")
 | 
|---|
| 81 |  ... Q
 | 
|---|
| 82 |  .. S MCSUBFIL(0)=+$$GET1^DID(MCSUBFIL,MCSUBFLD,"","SPECIFIER")
 | 
|---|
| 83 |  .. I MCSUBFIL(0)>0 D
 | 
|---|
| 84 |  ... S MC=($O(^DD(MCSUBFIL(0),.01))'>0)&($D(^DD(MCSUBFIL(0),.01,0))#2)
 | 
|---|
| 85 |  ... S MCTEXT="Sub-Field # "_MCSUBFIL_","_MCSUBFLD_" missing Sub-File/"
 | 
|---|
| 86 |  ... S MCTEXT=MCTEXT_"Field # "_MCSUBFIL(0)_","_$S(MC:".01",1:"???")
 | 
|---|
| 87 |  ... S ^TMP("MCSUB",$J,MCSUBFIL(0))=MCTEXT
 | 
|---|
| 88 |  ... Q
 | 
|---|
| 89 |  .. Q
 | 
|---|
| 90 |  . Q
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 |  ; *** Check the Sub-File mult ***
 | 
|---|
| 93 |  ;
 | 
|---|
| 94 |  I $O(^TMP("MCSUB",$J,0)),$O(^MCAR(690.2,MCD0,2,0))'>0 D
 | 
|---|
| 95 |  . D ERR("No Sub-Files specified")
 | 
|---|
| 96 |  . Q
 | 
|---|
| 97 |  S MCD1=0
 | 
|---|
| 98 |  F  S MCD1=$O(^MCAR(690.2,MCD0,2,MCD1)) Q:MCD1'>0  D
 | 
|---|
| 99 |  . S MCSUBFIL=+$P($G(^MCAR(690.2,MCD0,2,MCD1,0)),U)
 | 
|---|
| 100 |  . I $G(^DD(MCSUBFIL,0))="" D  Q
 | 
|---|
| 101 |  .. D ERR("Subfile # "_MCSUBFIL_" does not exist")
 | 
|---|
| 102 |  .. Q
 | 
|---|
| 103 |  . I $D(^TMP("MCSUB",$J,MCSUBFIL)) D
 | 
|---|
| 104 |  .. K ^TMP("MCSUB",$J,MCSUBFIL)
 | 
|---|
| 105 |  .. Q
 | 
|---|
| 106 |  . E  D
 | 
|---|
| 107 |  .. S MCUP=+$G(^DD(MCSUBFIL,0,"UP"))
 | 
|---|
| 108 |  .. S MCUP=$S(MCUP:MCUP,1:"???")
 | 
|---|
| 109 |  .. S MCFL=+$O(^DD(MCUP,"SB",MCSUBFIL,0))
 | 
|---|
| 110 |  .. S MCFL=$S(MCFL:MCFL,1:"???")
 | 
|---|
| 111 |  .. S MCTEXT="Sub-File # "_MCSUBFIL_" is missing "
 | 
|---|
| 112 |  .. S MCTEXT=MCTEXT_$S(MCUP'=MCFILE:"Sub-",1:"")
 | 
|---|
| 113 |  .. S MCTEXT=MCTEXT_"File/Field # "_MCUP_","_MCFL
 | 
|---|
| 114 |  .. S ^TMP("MCSUB",$J,MCSUBFIL)=MCTEXT
 | 
|---|
| 115 |  .. Q
 | 
|---|
| 116 |  . Q
 | 
|---|
| 117 |  ;
 | 
|---|
| 118 |  S MCSUBFIL=0
 | 
|---|
| 119 |  F  S MCSUBFIL=$O(^TMP("MCSUB",$J,MCSUBFIL)) Q:MCSUBFIL'>0  D
 | 
|---|
| 120 |  . D ERR(^TMP("MCSUB",$J,MCSUBFIL))
 | 
|---|
| 121 |  . Q
 | 
|---|
| 122 |  K ^TMP("MCSUB",$J)
 | 
|---|
| 123 |  Q
 | 
|---|
| 124 | ERR(X) ;
 | 
|---|
| 125 |  S MCERR=MCERR+1
 | 
|---|
| 126 |  S ^TMP("MCARVCHK",$J,MCERR)=MCNAME_U_MCD0_U_X
 | 
|---|
| 127 |  Q
 | 
|---|
| 128 | PAUSE ;
 | 
|---|
| 129 |  I $E(IOST,1,2)="C-" D
 | 
|---|
| 130 |  . N DIR S DIR(0)="E" D ^DIR S MCEXIT=$S(Y'>0:1,1:0)
 | 
|---|
| 131 |  . Q
 | 
|---|
| 132 |  E  D
 | 
|---|
| 133 |  . S MCEXIT=0
 | 
|---|
| 134 |  . Q
 | 
|---|
| 135 |  Q
 | 
|---|
| 136 | HEADER ;
 | 
|---|
| 137 |  I MCEXIT Q
 | 
|---|
| 138 |  I ($E(IOST,1,2)="C-")!(MCPAGE>1) W @IOF
 | 
|---|
| 139 |  W !?25,"MEDICINE VIEW FILE SANITY CHECK",?68,MCTODAY
 | 
|---|
| 140 |  W !?68,"PAGE: ",MCPAGE S MCPAGE=MCPAGE+1
 | 
|---|
| 141 |  W !,"PRINT VIEW TEMPLATE NAME",?70,"IEN",!?5,"ERROR MESSAGE"
 | 
|---|
| 142 |  W !,MCUNDL
 | 
|---|
| 143 |  Q
 | 
|---|