| [613] | 1 | SD53396P ;VMP/RB - POST INIT FOR PATCH SD*5.3*396 ;09/30/04
 | 
|---|
 | 2 |  ;;5.3;Scheduling;**396**;AUG 13,1993
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 |  ;Post init routine to locate ^SCE encounters that have a app't
 | 
|---|
 | 5 |  ;status of pending action (14), BUT a status of 'I' in
 | 
|---|
 | 6 |  ;the associated ^DPT(DFN,"S") node.  The app't status will be
 | 
|---|
 | 7 |  ;modified to '8' if condition found.
 | 
|---|
 | 8 | TASK ;
 | 
|---|
 | 9 |  ; Task the initial bad data determination as background process
 | 
|---|
 | 10 |  ;
 | 
|---|
 | 11 |  D NOW^%DTC
 | 
|---|
 | 12 |  ;Task process
 | 
|---|
 | 13 |  S ZTDTH=%H
 | 
|---|
 | 14 |  S ZTIO=""
 | 
|---|
 | 15 |  S ZTRTN="INIT^SD53396P",ZTDESC="^SCE O/P encounter status check for inpatients"
 | 
|---|
 | 16 |  D ^%ZTLOAD K ZTDTH,ZTRTN,ZTIO,ZTDESC
 | 
|---|
 | 17 |  I $D(ZTSK)&('$D(ZTQUEUED)) D BMES^XPDUTL("Task Queued!")
 | 
|---|
 | 18 |  Q
 | 
|---|
 | 19 | INIT ;
 | 
|---|
 | 20 |  ; Drives through ^SCE and finds all invalid entries.
 | 
|---|
 | 21 |  ; If entries are found to be invalid the entry is corrected
 | 
|---|
 | 22 |  ; and stored in temp print file
 | 
|---|
 | 23 |  ;
 | 
|---|
 | 24 |  N IEN,DFN,DATA,ESTS,SDAT,U,PDATE,SCHD,SSTS
 | 
|---|
 | 25 |  D NOW^%DTC
 | 
|---|
 | 26 |  S PDATE=+%H+60,U="^"
 | 
|---|
 | 27 |  S PDATE=$$HTFM^XLFDT(PDATE)
 | 
|---|
 | 28 |  L +^XTMP("SD53396P",0):1 I '$T Q
 | 
|---|
 | 29 |  K ^XTMP("SD53396P")
 | 
|---|
 | 30 |  S ^XTMP("SD53396P",0)=PDATE_"^"_X_"^"_"SCE encounter Clean Utility"
 | 
|---|
 | 31 |  L -^XTMP("SD53396P",0)
 | 
|---|
 | 32 |  S IEN=0
 | 
|---|
 | 33 |  F  S IEN=$O(^SCE(IEN)) Q:IEN=""!'IEN  D
 | 
|---|
 | 34 |  .S DATA=$G(^SCE(IEN,0)),SDAT=+$E($P(DATA,U),1,12),DFN=$P(DATA,U,2),ESTS=$P(DATA,U,12)
 | 
|---|
 | 35 |  .Q:ESTS'=14!'DFN
 | 
|---|
 | 36 |  .S SCHD=$G(^DPT(DFN,"S",SDAT,0)),SSTS=$P(SCHD,U,2)
 | 
|---|
 | 37 |  .Q:SSTS'="I"
 | 
|---|
 | 38 |  .S ^XTMP("SD53396P",IEN,0)=DFN_"^"_SDAT_"^"_ESTS_"^"_SSTS,^XTMP("SD53396P",IEN,1)=DATA,^XTMP("SD53396P",IEN,2)=SCHD
 | 
|---|
 | 39 |  .S $P(^SCE(IEN,0),U,12)=8
 | 
|---|
 | 40 |  .W !,IEN,?15,DFN,?30,SDAT,?50,ESTS,"/",SSTS
 | 
|---|
 | 41 |  S ZTREQ="@",^XTMP("SD53396P")="@"
 | 
|---|
 | 42 |  Q
 | 
|---|
 | 43 | REPORT ;
 | 
|---|
 | 44 |  ; Reports the entries that are have been cleaned up by the cleaning process
 | 
|---|
 | 45 |  ;
 | 
|---|
 | 46 |  I '$D(^XTMP("SD53396P")) W !!,"COMPILE AUDIT NOT RUN" Q
 | 
|---|
 | 47 |  I $G(^XTMP("SD53396P"))'="@" W !!,"COMPILE NOT COMPLETED" Q
 | 
|---|
 | 48 |  N POP,REC,DATA
 | 
|---|
 | 49 |  D ^%ZIS
 | 
|---|
 | 50 |  Q:POP
 | 
|---|
 | 51 |  I '$O(^XTMP("SD53396P",0)) W !!,"** NO ERRORS DETECTED **" Q
 | 
|---|
 | 52 |  W !!,"List of entries that SD*5.3*396 has determined to be incorrect AND FIXED",!!
 | 
|---|
 | 53 |  W "IEN",?10,"DFN",?20,"SCHED DT",?34,"STS",!
 | 
|---|
 | 54 |  S REC=0
 | 
|---|
 | 55 |  F  S REC=$O(^XTMP("SD53396P",REC)) Q:REC=""  D
 | 
|---|
 | 56 |  .S DATA=^XTMP("SD53396P",REC,0)
 | 
|---|
 | 57 |  .W !,REC,?10,$P(DATA,U),?20,$P(DATA,U,2),?34,$P(DATA,U,3),"/",$P(DATA,U,4),?40,$P(^DPT($P(DATA,U),0),U)
 | 
|---|
 | 58 |  . W !,?3,"SCE: ",$E(^XTMP("SD53396P",REC,1),1,70)
 | 
|---|
 | 59 |  . W !,?3,"DPT: ",$E(^XTMP("SD53396P",REC,2),1,70)
 | 
|---|
 | 60 |  Q
 | 
|---|