| [613] | 1 | IBDF15A ;ALB/CJM - AICS FORM USE BY DIVISION/CLINIC ; JUL 20,1993
 | 
|---|
 | 2 |  ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 |  ; -- prints for each encounter form the clinics using it
 | 
|---|
 | 5 |  ;
 | 
|---|
 | 6 | PRINT ; -- Main print driver
 | 
|---|
 | 7 |  W:$E(IOST,1,2)="C-" @IOF
 | 
|---|
 | 8 |  S FORMNAM="" F  S FORMNAM=$O(^IBE(357,"B",FORMNAM)) Q:FORMNAM=""  S FORM=$O(^IBE(357,"B",FORMNAM,0)) Q:'FORM  D  Q:IBQUIT
 | 
|---|
 | 9 |  .Q:$P($G(^IBE(357,FORM,0)),"^",7)  ;exclude toolkit forms
 | 
|---|
 | 10 |  .D CLINIC(FORM,FORMNAM)
 | 
|---|
 | 11 |  D LIST
 | 
|---|
 | 12 |  I $E(IOST,1,2)="C-",'IBQUIT D PAUSE
 | 
|---|
 | 13 |  Q
 | 
|---|
 | 14 |  ;
 | 
|---|
 | 15 | CLINIC(FORM,FORMNAM) ;
 | 
|---|
 | 16 |  ; -- finds the list of clinics using FORM
 | 
|---|
 | 17 |  ;    ^TMP($J,"IBDCS",0) is number of clinics found
 | 
|---|
 | 18 |  ;    ^TMP($J,"IBDCS",divname, div pointer, form name, form pointer,
 | 
|---|
 | 19 |  ;                 clinic name)=clinic pointer := is list of clinics
 | 
|---|
 | 20 |  ;
 | 
|---|
 | 21 |  N CLINIC,SETUP,IDX,CLNAME,DIVIS,DIVNAM,CNT
 | 
|---|
 | 22 |  F IDX="C","D","E","F","G","H","I","J" D
 | 
|---|
 | 23 |  .S SETUP="" F  S SETUP=$O(^SD(409.95,IDX,FORM,SETUP)) Q:'SETUP  D
 | 
|---|
 | 24 |  ..S CLINIC=$P($G(^SD(409.95,SETUP,0)),"^",1)
 | 
|---|
 | 25 |  ..Q:'CLINIC
 | 
|---|
 | 26 |  ..S CLNAME=$P($G(^SC(CLINIC,0)),"^",1)
 | 
|---|
 | 27 |  ..Q:CLNAME=""
 | 
|---|
 | 28 |  ..S DIVIS=$P($G(^SC(CLINIC,0)),"^",15)
 | 
|---|
 | 29 |  ..I DIVIS="" S DIVIS=$S(MULTI=0:$$PRIM^VASITE,1:"Unknown")
 | 
|---|
 | 30 |  ..S DIVNAM=$P($G(^DG(40.8,+DIVIS,0)),"^")
 | 
|---|
 | 31 |  ..S:DIVNAM="" DIVNAM="Unknown"
 | 
|---|
 | 32 |  ..S CNT=$G(CNT)+1
 | 
|---|
 | 33 |  ..S ^TMP($J,"IBDCS",DIVNAM,+$G(DIVIS),FORMNAM,FORM,CLNAME)=CLINIC_"^"_IDX
 | 
|---|
 | 34 |  ..S ^TMP($J,"IBDCS",DIVNAM,+$G(DIVIS))=$G(^TMP($J,"IBDCS",DIVNAM,+$G(DIVIS)))+1
 | 
|---|
 | 35 |  S:$G(CNT)<1 ^TMP($J,"IBDCN",FORMNAM,FORM)="" ;forms not in use
 | 
|---|
 | 36 |  Q
 | 
|---|
 | 37 |  ;
 | 
|---|
 | 38 | LIST ; -- lists the clinics using FORM
 | 
|---|
 | 39 |  N DIVNAM,DIVIS,FORMNAM,FORM,CLNAME,CLINIC,NEWDIV,IBDONE,IDX
 | 
|---|
 | 40 |  ;
 | 
|---|
 | 41 |  ; -- list forms not in use
 | 
|---|
 | 42 |  S DIVNAM="",NEWDIV=0
 | 
|---|
 | 43 |  F  S DIVNAM=$O(^TMP($J,"IBDCS",DIVNAM)) Q:DIVNAM=""!(IBQUIT)  S DIVIS=+$O(^TMP($J,"IBDCS",DIVNAM,"")) I VAUTD=1!($D(VAUTD(DIVIS))) D
 | 
|---|
 | 44 |  .;
 | 
|---|
 | 45 |  .S NEWDIV=1
 | 
|---|
 | 46 |  .K IBDONE
 | 
|---|
 | 47 |  .S FORMNAM=""
 | 
|---|
 | 48 |  .F  S FORMNAM=$O(^TMP($J,"IBDCS",DIVNAM,DIVIS,FORMNAM)) Q:FORMNAM=""!(IBQUIT)  S FORM=$O(^TMP($J,"IBDCS",DIVNAM,DIVIS,FORMNAM,0)) D
 | 
|---|
 | 49 |  ..;
 | 
|---|
 | 50 |  ..S CLNAME=""
 | 
|---|
 | 51 |  ..F  S CLNAME=$O(^TMP($J,"IBDCS",DIVNAM,DIVIS,FORMNAM,FORM,CLNAME)) Q:CLNAME=""!(IBQUIT)  S CLINIC=+^(CLNAME),IDX=$P(^(CLNAME),"^",2) I '$D(IBDONE(FORM)) W ! D LINEONE,ALL(FORMNAM,CLNAME,DIVNAM)
 | 
|---|
 | 52 |  ;
 | 
|---|
 | 53 |  ; -- list forms not in use
 | 
|---|
 | 54 |  S FORMNAM="",NEWDIV=1,DIVNAM="FORMS NOT IN USE"
 | 
|---|
 | 55 |  F  S FORMNAM=$O(^TMP($J,"IBDCN",FORMNAM)) Q:FORMNAM=""!(IBQUIT)  S FORM=$O(^TMP($J,"IBDCN",FORMNAM,0)) D LINETWO
 | 
|---|
 | 56 |  Q
 | 
|---|
 | 57 |  ;
 | 
|---|
 | 58 | LINEONE ; -- print on report header, lines, etc.
 | 
|---|
 | 59 |  ;
 | 
|---|
 | 60 |  I NEWDIV D HEADER Q:IBQUIT  W !,?10,"Division: ",DIVNAM S NEWDIV=0
 | 
|---|
 | 61 |  I $Y>(IOSL-3) D HEADER Q:IBQUIT
 | 
|---|
 | 62 |  W !,FORMNAM,?32,$E(CLNAME,1,25),?59,$E(DIVNAM,1,20),?81,$$TYPE(IDX)
 | 
|---|
 | 63 |  I '$$ACLN^IBDFCNOF(CLINIC) W ?100,"  (Clinic Currently Inactive)"
 | 
|---|
 | 64 |  S IBDONE(FORM)=""
 | 
|---|
 | 65 |  Q
 | 
|---|
 | 66 |  ;
 | 
|---|
 | 67 | LINETWO ; -- print lines for forms not in use
 | 
|---|
 | 68 |  I NEWDIV D HEADER Q:IBQUIT  S NEWDIV=0
 | 
|---|
 | 69 |  I $Y>(IOSL-3) D HEADER Q:IBQUIT
 | 
|---|
 | 70 |  W !,FORMNAM,?32,"** NOT IN USE **"
 | 
|---|
 | 71 |  Q
 | 
|---|
 | 72 |  ;
 | 
|---|
 | 73 | LINETHR ; -- print lines for clinics in other divisions
 | 
|---|
 | 74 |  I $Y>(IOSL-3) D HEADER Q:IBQUIT
 | 
|---|
 | 75 |  W !,?32,CLNAME,?59,$E(DIVNAM,1,20),?81,$$TYPE(IDX)
 | 
|---|
 | 76 |  I '$$ACLN^IBDFCNOF(CLINIC) W ?100,"  (Clinic Currently Inactive)"
 | 
|---|
 | 77 |  Q
 | 
|---|
 | 78 |  ;
 | 
|---|
 | 79 | ALL(FORMNAM,CL1,DV1) ;
 | 
|---|
 | 80 |  ; -- find all clinics using for irregardless of division
 | 
|---|
 | 81 |  ;    stored in ^TMP($J,"IBDCS",DIVNAM,DIVIS,FORMNAM,FORM,CLNAME)
 | 
|---|
 | 82 |  ;
 | 
|---|
 | 83 |  N FORM,CLNAME,DIVNAM,DIVIS
 | 
|---|
 | 84 |  S DIVNAM=""
 | 
|---|
 | 85 |  F  S DIVNAM=$O(^TMP($J,"IBDCS",DIVNAM)) Q:DIVNAM=""!(IBQUIT)  S DIVIS=+$O(^TMP($J,"IBDCS",DIVNAM,"")) I VAUTD=1!($D(VAUTD(DIVIS))) D
 | 
|---|
 | 86 |  .S FORM=+$O(^TMP($J,"IBDCS",DIVNAM,DIVIS,FORMNAM,0))
 | 
|---|
 | 87 |  .S CLNAME="" F  S CLNAME=$O(^TMP($J,"IBDCS",DIVNAM,DIVIS,FORMNAM,FORM,CLNAME)) Q:CLNAME=""!(IBQUIT)  S CLINIC=+^(CLNAME) D
 | 
|---|
 | 88 |  ..Q:CL1=CLNAME&(DV1=DIVNAM)
 | 
|---|
 | 89 |  ..D LINETHR
 | 
|---|
 | 90 |  Q
 | 
|---|
 | 91 |  ;
 | 
|---|
 | 92 |  ;S FORM=$O(^TMP($J,"IBDCL",FORMNAM,0))
 | 
|---|
 | 93 |  ;S CLNAME="" F  S CLNAME=$O(^TMP($J,"IBDCL",FORMNAM,FORM,CLNAME)) Q:CLNAME=""!(IBQUIT)  D
 | 
|---|
 | 94 |  ;.S DIVNAM="" F  S DIVNAM=$O(^TMP($J,"IBDCL",FORMNAM,FORM,CLNAME,DIVNAM)) Q:DIVNAM=""!(IBQUIT)  D
 | 
|---|
 | 95 |  ;..Q:CL1=CLNAME&(DV1=DIVNAM)
 | 
|---|
 | 96 |  ;..D LINETHR
 | 
|---|
 | 97 |  Q
 | 
|---|
 | 98 |  ;
 | 
|---|
 | 99 | HEADER ; -- writes the report header
 | 
|---|
 | 100 |  I $E(IOST,1,2)="C-",$Y>1,PAGE>1 D PAUSE Q:IBQUIT
 | 
|---|
 | 101 |  I PAGE>1 W @IOF
 | 
|---|
 | 102 |  W !,"List of Encounter Forms and their Use by Clinics",?IOM-30,IBHDT,"  PAGE ",PAGE
 | 
|---|
 | 103 |  W !,"For Division: ",$G(DIVNAM)
 | 
|---|
 | 104 |  W !,"FORM NAME",?32,"CLINIC",?59,"DIVISION",?81,"FORM USAGE"
 | 
|---|
 | 105 |  W !,$TR($J(" ",IOM)," ","-")
 | 
|---|
 | 106 |  S PAGE=PAGE+1
 | 
|---|
 | 107 |  Q
 | 
|---|
 | 108 |  ;
 | 
|---|
 | 109 | PAUSE ; -- hold screen
 | 
|---|
 | 110 |  N DIR,X,Y
 | 
|---|
 | 111 |  F  Q:$Y>(IOSL-2)  W !
 | 
|---|
 | 112 |  S DIR(0)="E" D ^DIR S IBQUIT=$S(+Y:0,1:1)
 | 
|---|
 | 113 |  Q
 | 
|---|
 | 114 |  ;
 | 
|---|
 | 115 | TYPE(IDX) ;
 | 
|---|
 | 116 |  ; -- type of form
 | 
|---|
 | 117 |  ;    input cross reference from print Manager Clinic Setups (409.95)
 | 
|---|
 | 118 |  ;    output name of type of form
 | 
|---|
 | 119 |  ;    IDX="C","D","E","F","G","H","I","J"
 | 
|---|
 | 120 |  ;
 | 
|---|
 | 121 |  N X
 | 
|---|
 | 122 |  S IDX=$E(IDX,1)
 | 
|---|
 | 123 |  S X="" I IDX="" G TYPEQ
 | 
|---|
 | 124 |  S X=$S(IDX="C":"Basic Form",IDX="D":"Supplmntl form - Establshed Pt.",IDX="E":"Supplmntl Form - First Visit",IDX="F":"Form w/o Patient Data",IDX="G":"Supplmntl Form #1",1:"")
 | 
|---|
 | 125 |  I X="" S X=$S(IDX="H":"Reserved",IDX="I":"Supplmntl Form #2",IDX="J":"Supplmntl Form #3",1:"")
 | 
|---|
 | 126 | TYPEQ   Q X
 | 
|---|