| 1 | SDACSCG ;ALB/TET - Print/Edit Computer Generated Appt Types ;3/18/92  14:18 | 
|---|
| 2 | ;;5.3;Scheduling;**16,22,132,202**;Aug 13, 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | Q | 
|---|
| 5 | CK ; -- check the number of computer generated visits | 
|---|
| 6 | N SDT,SDOE,CT | 
|---|
| 7 | S (SDT,CT)=0 | 
|---|
| 8 | F  S SDT=$O(^SCE("ACG",SDT)) Q:'SDT  D | 
|---|
| 9 | . S SDOE=0 | 
|---|
| 10 | . F  S SDOE=$O(^SCE("ACG",SDT,SDOE)) Q:'SDOE  S CT=CT+1 | 
|---|
| 11 | ; | 
|---|
| 12 | I CT D | 
|---|
| 13 | . W !?5,"There are ",CT," encounter(s) with a 'Computer Generated' appointment type.",*7,! | 
|---|
| 14 | E  D | 
|---|
| 15 | . W !?5,"There are no 'Computer Generated' appointment type encounters." | 
|---|
| 16 | Q | 
|---|
| 17 | ; | 
|---|
| 18 | PRINT ;print those CG types which need to be manually updated | 
|---|
| 19 | S DGPGM="QUE^SDACSCG" | 
|---|
| 20 | D ZIS^DGUTQ | 
|---|
| 21 | Q:POP | 
|---|
| 22 | ; | 
|---|
| 23 | QUE ; -- queue entry point | 
|---|
| 24 | N SDOE,SDOE0,SDT,DSAH,SDY,CT,Y,X,VA,VADM,VAERR,CT,%DT | 
|---|
| 25 | S DASH="",$P(DASH,"-",79)="" | 
|---|
| 26 | S (SDT,CT)=0,%DT="SX" | 
|---|
| 27 | D HDR | 
|---|
| 28 | F  S SDT=$O(^SCE("ACG",SDT)) Q:'SDT  D  G:$D(DTOUT)!($D(DUOUT)) EXIT | 
|---|
| 29 | . S Y=SDT D DD^%DT S SDY=Y | 
|---|
| 30 | . S SDOE=0 | 
|---|
| 31 | . F  S SDOE=$O(^SCE("ACG",SDT,SDOE)) Q:'SDOE  D  Q:$D(DTOUT)!($D(DUOUT)) | 
|---|
| 32 | . . S SDOE0=$G(^SCE(SDOE,0)) | 
|---|
| 33 | . . S DFN=+$P(SDOE0,U,2) | 
|---|
| 34 | . . D DEM^VADPT | 
|---|
| 35 | . . D:$Y+6>IOSL CR,HDR | 
|---|
| 36 | . . Q:$D(DTOUT)!($D(DUOUT)) | 
|---|
| 37 | . . W !,SDY,?25,$S(VAERR=0:VADM(1),1:"UNKNOWN"),?60,VA("PID") | 
|---|
| 38 | . . S CT=CT+1 | 
|---|
| 39 | I CT D:$Y+4>IOSL CR W !!,CT," MATCHES FOUND.",! | 
|---|
| 40 | ; | 
|---|
| 41 | EXIT ; -- exit processing | 
|---|
| 42 | K %DT,CT,D,DA,DASH,DE,DFN,DFN0,DGPGM,DIC,DIE,DIRUT,DQ | 
|---|
| 43 | K DR,DTOUT,DUOUT,FR,I,J,POP,SDA,SDAPTYP,SDBEG,SDCSNODE | 
|---|
| 44 | K SDDIV,SDEND,SDUPDT,SDY,SDZN,SDTYPE,TO,VADM,VAEL,VAERR,VA,X,Y | 
|---|
| 45 | Q | 
|---|
| 46 | ; | 
|---|
| 47 | CR ; -- end of page processing | 
|---|
| 48 | Q:$E(IOST,1,2)'="C-" | 
|---|
| 49 | W !!,"Press RETURN to continue or '^' to exit: " | 
|---|
| 50 | R SDXX:DTIME S:'$T DTOUT=1 | 
|---|
| 51 | Q:$D(DTOUT)!(SDXX="") | 
|---|
| 52 | I SDXX="^" S DUOUT=1 Q | 
|---|
| 53 | W !?5,"Enter an '^' to exit the listing, or enter RETURN to continue." | 
|---|
| 54 | G CR | 
|---|
| 55 | ; | 
|---|
| 56 | HDR ; -- header processing | 
|---|
| 57 | W:$D(IOF) @IOF W !,"COMPUTER GENERATED APPOINTMENT TYPES" | 
|---|
| 58 | W !,"ENCOUNTER DATE/TIME",?25,"PATIENT",?60,"PT ID",!,DASH,!! | 
|---|
| 59 | Q | 
|---|
| 60 | ; | 
|---|
| 61 | EDIT ; -- edit computer generated appt types | 
|---|
| 62 | N DIR,SDOUT,%DT | 
|---|
| 63 | I '$O(^SCE("ACG",0)) W !!?5,"There are no 'Computer Generated' Appointment Types which need updating." G EDITQ | 
|---|
| 64 | ; | 
|---|
| 65 | W ! | 
|---|
| 66 | S DIR("A",1)="You may enter one of the following:" | 
|---|
| 67 | S DIR("A",2)="         Encounter Date - edit 'Computer Generated' entries for a specific date" | 
|---|
| 68 | S DIR("A",3)="  Patient Name (or SSN) - edit 'Computer Generated' entries for one patient" | 
|---|
| 69 | S DIR("A",4)="  The default of 'ALL'  - edit all entries which are 'Computer Generated'" | 
|---|
| 70 | S DIR("A")="Select Encounter Date" | 
|---|
| 71 | S DIR("B")="ALL" | 
|---|
| 72 | S DIR(0)="F^1:30" | 
|---|
| 73 | S %DT(0)="-DT" | 
|---|
| 74 | S DIR("?")="^D QUE^SDACSCG" | 
|---|
| 75 | D ^DIR K DIR | 
|---|
| 76 | G:$D(DIRUT) EDITQ | 
|---|
| 77 | ; | 
|---|
| 78 | S SDOUT=0 | 
|---|
| 79 | D | 
|---|
| 80 | .N SDZ | 
|---|
| 81 | .I "ALLall"[Y D  Q | 
|---|
| 82 | ..D ALL | 
|---|
| 83 | .S (X,SDZ)=Y,%DT="PX" | 
|---|
| 84 | .D ^%DT | 
|---|
| 85 | .I Y'=-1 D  Q | 
|---|
| 86 | ..S Y=SDZ | 
|---|
| 87 | ..D DATE | 
|---|
| 88 | .S Y=SDZ | 
|---|
| 89 | .I Y?9N!(Y?1A4N)!(Y?.AP)!(Y?4N) D  Q | 
|---|
| 90 | ..D DPT | 
|---|
| 91 | ; | 
|---|
| 92 | I 'SDOUT G EDIT | 
|---|
| 93 | ; | 
|---|
| 94 | EDITQ D EXIT | 
|---|
| 95 | Q | 
|---|
| 96 | ; | 
|---|
| 97 | DATE ; | 
|---|
| 98 | N CT,%DT,Y,SDBEG,SDEND | 
|---|
| 99 | S CT=0 | 
|---|
| 100 | S %DT="EPTXS" | 
|---|
| 101 | S %DT(0)=-DT | 
|---|
| 102 | D ^%DT S Y=+Y | 
|---|
| 103 | IF $D(DTOUT) S SDOUT=1 G DATEQ | 
|---|
| 104 | G DATEQ:Y=-1 | 
|---|
| 105 | ; | 
|---|
| 106 | S SDBEG=$S(Y[".":Y-.000001,1:Y) | 
|---|
| 107 | S SDEND=$S(Y[".":Y,1:Y_.999999) | 
|---|
| 108 | D LOOP(SDBEG,SDEND) | 
|---|
| 109 | ; | 
|---|
| 110 | G:SDOUT DATEQ | 
|---|
| 111 | W:'CT !,"There are no 'Computer Generated' appt types for selection.",*7,! | 
|---|
| 112 | DATEQ Q | 
|---|
| 113 | ; | 
|---|
| 114 | ALL ; -- loop through and edit all computer generated appt types | 
|---|
| 115 | N CT | 
|---|
| 116 | S CT=0 | 
|---|
| 117 | ; | 
|---|
| 118 | D LOOP() | 
|---|
| 119 | ; | 
|---|
| 120 | ALLQ Q | 
|---|
| 121 | ; | 
|---|
| 122 | DPT ; -- look up in patient file & loop through acg for selected dfn | 
|---|
| 123 | ; | 
|---|
| 124 | N DIC,D,CT,Y | 
|---|
| 125 | S CT=0 | 
|---|
| 126 | S DIC="^DPT(",DIC(0)="EQMZ" | 
|---|
| 127 | S D=$S(X?9N:"SSN",X?1A.4N:"B5",1:"B") | 
|---|
| 128 | D IX^DIC | 
|---|
| 129 | G DPTQ:Y'>0 | 
|---|
| 130 | ; | 
|---|
| 131 | D LOOP(,,+Y) | 
|---|
| 132 | ; | 
|---|
| 133 | G:SDOUT DPTQ | 
|---|
| 134 | W:'CT !,"There are no 'Computer Generated' appt types for selected entry.",*7,! | 
|---|
| 135 | DPTQ Q | 
|---|
| 136 | ; | 
|---|
| 137 | LOOP(SDBEG,SDEND,SDFN) ; | 
|---|
| 138 | N SDY,DFN,VA,VAERR,VAADM,SDT,SDOE | 
|---|
| 139 | ; | 
|---|
| 140 | IF '$G(SDBEG) N SDBEG S SDBEG=0 | 
|---|
| 141 | IF '$G(SDEND) N SDEND S SDEND=9999999 | 
|---|
| 142 | IF '$G(SDFN) N SDFN S SDFN=0 | 
|---|
| 143 | ; | 
|---|
| 144 | S SDT=SDBEG | 
|---|
| 145 | F  S SDT=$O(^SCE("ACG",SDT)) Q:'SDT!(SDT>SDEND)  D  Q:SDOUT | 
|---|
| 146 | . S SDOE=0 | 
|---|
| 147 | . F  S SDOE=$O(^SCE("ACG",SDT,SDOE)) Q:'SDOE  D  Q:SDOUT | 
|---|
| 148 | . . IF SDFN,SDFN'=+$P($G(^SCE(SDOE,0)),"^",2) Q | 
|---|
| 149 | . . D DEM(SDOE),DEMW | 
|---|
| 150 | . . D DIE(SDOE) | 
|---|
| 151 | LOOPQ Q | 
|---|
| 152 | ; | 
|---|
| 153 | DEM(SDOE) ; -- get pt name,ssn and visit date | 
|---|
| 154 | N SDOE0,Y,DFN | 
|---|
| 155 | S SDOE0=$G(^SCE(SDOE,0)) | 
|---|
| 156 | S DFN=+$P(SDOE0,"^",2) | 
|---|
| 157 | D DEM^VADPT | 
|---|
| 158 | S Y=+SDOE0 D DD^%DT S SDY=Y | 
|---|
| 159 | Q | 
|---|
| 160 | ; | 
|---|
| 161 | DEMW ; -- write patient demographics | 
|---|
| 162 | W !!,SDY,?25,$S(VAERR=0:VADM(1),1:"UNKNOWN"),?60,VA("PID") | 
|---|
| 163 | Q | 
|---|
| 164 | ; | 
|---|
| 165 | DIE(SDOE) ; -- do edit | 
|---|
| 166 | N DR,DIE,DE,DQ | 
|---|
| 167 | S DR=".1d;I $P(^(0),U,10)=10 S Y=""@99"";202///@;@99" | 
|---|
| 168 | S DIE="^SCE(" | 
|---|
| 169 | S DA=SDOE | 
|---|
| 170 | D ^DIE | 
|---|
| 171 | S:$D(DTOUT)!($D(Y)'=0) SDOUT=1 | 
|---|
| 172 | S CT=CT+1 | 
|---|
| 173 | Q | 
|---|
| 174 | ; | 
|---|