| 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 | 
|---|