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