| 1 | SCDXSUP1 ;RENO/KEITH ALB/SCK - Supervisory Options for Ambulatory Care Reporting; 2/26/97 | 
|---|
| 2 | ;;5.3;Scheduling;**104,127,132**;Aug 13,1993 | 
|---|
| 3 | Q | 
|---|
| 4 | ; | 
|---|
| 5 | APPTY ; Edit Appointment type for Add/Edit | 
|---|
| 6 | N DIC,DTOUT,DUTOUT,SCDFN,SCI,SCG,SCOUT,SCDT,DIR,DIRUT | 
|---|
| 7 | ; | 
|---|
| 8 | S SCBD=$$ASKDT("Beginning") G:SCBD<0 APPQ | 
|---|
| 9 | APP1 S SCED=$$ASKDT("Ending") G:SCED<0 APPQ | 
|---|
| 10 | I SCED<SCBD D  G APP1 | 
|---|
| 11 | . W !!,"Ending date cannot be earlier than the beginning date!" | 
|---|
| 12 | ; | 
|---|
| 13 | ASK S DIC="^DPT(",DIC(0)="AEMQ" | 
|---|
| 14 | D ^DIC K DIC | 
|---|
| 15 | G:$D(DTOUT)!$D(DUOUT) APPQ | 
|---|
| 16 | G:Y'>0 EXIT | 
|---|
| 17 | S SCDFN=+Y | 
|---|
| 18 | ; | 
|---|
| 19 | I '$D(^SCE("C",SCDFN)) D  G ASK | 
|---|
| 20 | . W !!,"This patient has no outpatient encounters on file!",!! | 
|---|
| 21 | ; | 
|---|
| 22 | K ^TMP("SCEA",$J) | 
|---|
| 23 | S (SCI,SCG,SCOUT)=0 | 
|---|
| 24 | ; | 
|---|
| 25 | D WAIT^DICD | 
|---|
| 26 | W ! | 
|---|
| 27 | S SCDT=SCED+.999999 | 
|---|
| 28 | F  S SCDT=$O(^SCE("ADFN",SCDFN,SCDT),-1) Q:'SCDT!(SCOUT)!(SCDT<SCBD)  D | 
|---|
| 29 | . S SCI=SCI+1 | 
|---|
| 30 | . S SCDT=$P(SCDT,".") ; -- reset to stop processing date | 
|---|
| 31 | . S ^TMP("SCEA",$J,1,SCI)=SCDT | 
|---|
| 32 | . W !,SCI,?5,$$FMTE^XLFDT(SCDT,"1P") | 
|---|
| 33 | . I SCI#5=0 D GET(SCI) | 
|---|
| 34 | ; | 
|---|
| 35 | I SCI'>0 D  G ASK | 
|---|
| 36 | . W !!,"No encounters on file for this patient during this date range.",! | 
|---|
| 37 | ; | 
|---|
| 38 | I SCI#5'=0 D GET(SCI) | 
|---|
| 39 | D:SCG SCED | 
|---|
| 40 | G ASK | 
|---|
| 41 | APPQ ; | 
|---|
| 42 | K DIE,DR,DTOUT,DUOUT | 
|---|
| 43 | Q | 
|---|
| 44 | ; | 
|---|
| 45 | EXIT ; | 
|---|
| 46 | Q | 
|---|
| 47 | ; | 
|---|
| 48 | GET(SCN) ;  Select appointment from list | 
|---|
| 49 | N DIR,DIRUT,DUOUT,DTOUT | 
|---|
| 50 | K DIR | 
|---|
| 51 | W ! | 
|---|
| 52 | S DIR(0)="NO^1:"_SCN,DIR("A")="Select number, or ENTER to continue" | 
|---|
| 53 | S DIR("?",1)="Select entry to edit appointment type for from the list above" | 
|---|
| 54 | S DIR("?")="Press ENTER to continue." | 
|---|
| 55 | D ^DIR K DIR | 
|---|
| 56 | I $D(DUOUT)!($D(DTOUT)) S SCOUT=1 Q | 
|---|
| 57 | I $D(DIRUT) Q | 
|---|
| 58 | I Y S SCG=Y,SCOUT=1 | 
|---|
| 59 | Q | 
|---|
| 60 | ; | 
|---|
| 61 | SCED ; Select stop code | 
|---|
| 62 | N DIC,DIR,DIE,DR,SCK,DA,SCY,SCLINE,SUCCESS,SCDT,SCDATE,SCE,SCE0,SDLOG | 
|---|
| 63 | ; | 
|---|
| 64 | S SCDATE=^TMP("SCEA",$J,1,SCG) | 
|---|
| 65 | ; | 
|---|
| 66 | S SCDT=SCDATE | 
|---|
| 67 | F  S SCDT=$O(^SCE("ADFN",SCDFN,SCDT)) Q:'SCDT!($P(SCDT,".")'=SCDATE)  D | 
|---|
| 68 | . S SCE=0 | 
|---|
| 69 | . F  S SCE=$O(^SCE("ADFN",SCDFN,SCDT,SCE)) Q:'SCE  D | 
|---|
| 70 | . . S SCE0=$G(^SCE(SCE,0)) | 
|---|
| 71 | . . I $P($G(^SC(+$P(SCE0,U,4),"OOS")),U),$G(^SCE(SCE,"CG")) D SET | 
|---|
| 72 | ; | 
|---|
| 73 | I '$D(SCK) D  Q | 
|---|
| 74 | . W !!,"No occasion-of-service add/edits for this patient/date.",! | 
|---|
| 75 | ; | 
|---|
| 76 | I $D(SCK) D | 
|---|
| 77 | . W !!,"Appt. DT",?24,"Location",?60,"Appt. Type" | 
|---|
| 78 | . S SCLINE="",$P(SCLINE,"-",(IOM-1))="" W !,SCLINE | 
|---|
| 79 | ; | 
|---|
| 80 | S SCE=0 | 
|---|
| 81 | F  S SCE=$O(SCK(SCE)) Q:'SCE  D  W !! | 
|---|
| 82 | . S Y=$P(SCK(SCE),U) X ^DD("DD") | 
|---|
| 83 | . W !,Y,?24,$E($P(SCK(SCE),U,2),1,30),?60,$E($P(SCK(SCE),U,3),1,18) | 
|---|
| 84 | ; | 
|---|
| 85 | K DIC | 
|---|
| 86 | S DIC="^SD(409.1,",DIC(0)="AEMQ" | 
|---|
| 87 | S DIC("A")="Select new appointment type for these encounters: " | 
|---|
| 88 | S DIC("B")="COMPUTER GENERATED" | 
|---|
| 89 | D ^DIC K DIC | 
|---|
| 90 | Q:$D(DTOUT)!$D(DUOUT) | 
|---|
| 91 | Q:Y<1 | 
|---|
| 92 | S SCY=$P(Y,U) | 
|---|
| 93 | ; | 
|---|
| 94 | K DIR | 
|---|
| 95 | S DIR(0)="Y",DIR("A")="OK to change to "_$P(Y,U,2),DIR("B")="YES" | 
|---|
| 96 | D ^DIR K DIR | 
|---|
| 97 | Q:$D(DTOUT)!$D(DUOUT) | 
|---|
| 98 | Q:'Y | 
|---|
| 99 | ; | 
|---|
| 100 | K DIE,DR | 
|---|
| 101 | S DA=0 | 
|---|
| 102 | F  S DA=$O(SCK(DA)) Q:'DA  D | 
|---|
| 103 | . K SUCCESS | 
|---|
| 104 | . L +^SCE(DA):5 S SUCCESS=$S(($T):1,1:0) | 
|---|
| 105 | . I SUCCESS D | 
|---|
| 106 | .. S DIE="^SCE(",DR=".1////^S X=SCY" | 
|---|
| 107 | .. D ^DIE K DIE | 
|---|
| 108 | .. D LOGDATA^SDAPIAP(DA,.SDLOG) | 
|---|
| 109 | . E  D | 
|---|
| 110 | .. W !,"Outpatient Encounter entry: "_DA_" for "_$P($G(^DPT(SCDFN,0)),U)_" is in use, cannot edit." | 
|---|
| 111 | . L -^SCE(DA) | 
|---|
| 112 | ; | 
|---|
| 113 | W !,"Done." | 
|---|
| 114 | Q | 
|---|
| 115 | ; | 
|---|
| 116 | SET ; | 
|---|
| 117 | N SCDT,SCCL,SCTY | 
|---|
| 118 | ; | 
|---|
| 119 | S SCDT=+SCE0 | 
|---|
| 120 | S SCCL=$P(^SC($P(SCE0,U,4),0),U) | 
|---|
| 121 | S SCTY=$P($G(^SD(409.1,+$P(SCE0,U,10),0)),U) | 
|---|
| 122 | S:SCDT SCK(SCE)=SCDT_U_SCCL_U_SCTY | 
|---|
| 123 | Q | 
|---|
| 124 | ; | 
|---|
| 125 | ASKDT(TXT) ; Enter beginning date for searching outpatient encounter file | 
|---|
| 126 | S DIR(0)="DA^2961001:NOW:EXP",DIR("A")="Enter "_TXT_" date for search: " | 
|---|
| 127 | S DIR("?")="^D HELP^%DTC" | 
|---|
| 128 | S DIR("B")=$$FMTE^XLFDT($$DT^XLFDT()) | 
|---|
| 129 | D ^DIR K DIR | 
|---|
| 130 | S:$D(DIRUT) Y=-1 | 
|---|
| 131 | K DIRUT | 
|---|
| 132 | Q Y | 
|---|