| 1 | SD53103B ;ALB/MJK - Unique Visit ID Clean Up ; March 10,1997 | 
|---|
| 2 | ;;5.3;Scheduling;**103**;AUG 13, 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | Q | 
|---|
| 5 | ; | 
|---|
| 6 | OE(SDOE) ; -- display oe data | 
|---|
| 7 | N DIQ,DIC,DR,DA,SDLINE | 
|---|
| 8 | S $P(SDLINE,"=",80)="" | 
|---|
| 9 | W !,SDLINE,! | 
|---|
| 10 | S DIC="^SCE(",DA=SDOE,DIQ(0)="CAR" D EN^DIQ | 
|---|
| 11 | W !,SDLINE,! | 
|---|
| 12 | Q | 
|---|
| 13 | ; | 
|---|
| 14 | HDR(TEXT) ; -- intro header | 
|---|
| 15 | N X | 
|---|
| 16 | S X=">>>> Encounter Clean Up Tool for -1 Visit ID's ["_TEXT_"] <<<<" | 
|---|
| 17 | S T=(80-$L(X))/2 | 
|---|
| 18 | W @IOF,!?T,X | 
|---|
| 19 | Q | 
|---|
| 20 | ; | 
|---|
| 21 | INIT() ; -- init global locals | 
|---|
| 22 | N SDOK | 
|---|
| 23 | D HOME^%ZIS | 
|---|
| 24 | S SDOK=1,U="^",SDTALK=0 | 
|---|
| 25 | IF '$G(DT) S DT=$$DT^XLFDT() | 
|---|
| 26 | ; | 
|---|
| 27 | IF '$G(DUZ) D  G INITQ | 
|---|
| 28 | . W !,"DUZ is not defined." | 
|---|
| 29 | . S SDOK=0 | 
|---|
| 30 | ; | 
|---|
| 31 | IF '$O(^DIC(9.4,"C","SD",0)) D  G INITQ | 
|---|
| 32 | . W !,"No package with 'SD' namespace exists on the system." | 
|---|
| 33 | . S SDOK=0 | 
|---|
| 34 | ELSE  D | 
|---|
| 35 | . S SDPKG=$O(^DIC(9.4,"C","SD",0)) | 
|---|
| 36 | ; | 
|---|
| 37 | INITQ Q SDOK | 
|---|
| 38 | ; | 
|---|
| 39 | RESULTS(SDMODE,SDBEG,SDEND,SDRT,SDCNT) ; generate an e-mail bulletin when done | 
|---|
| 40 | N DIFROM,I,LINE,X | 
|---|
| 41 | S SDCOUNT=0 | 
|---|
| 42 | D LINE("The Unique Visit ID cleanup has run to completion."),LINE("") | 
|---|
| 43 | D LINE("    Start Time:         "_$$FMTE^XLFDT(SDBEG)) | 
|---|
| 44 | D LINE("      End Time:         "_$$FMTE^XLFDT(SDEND)) | 
|---|
| 45 | D LINE("      Run Mode:         "_$S(SDMODE=1:"Count Only",1:"Fix Entries")),LINE("") | 
|---|
| 46 | IF $$S^%ZTLOAD D | 
|---|
| 47 | . D LINE(" >>> Task Stopped by user. <<<") | 
|---|
| 48 | . D LINE("") | 
|---|
| 49 | . S ZTSTOP=1 | 
|---|
| 50 | ; | 
|---|
| 51 | D LINE("Total number of Outpatient Encounter entries "_$S(SDMODE=1:"that will be ",1:"")_"processed: "_SDCNT),LINE(""),LINE("") | 
|---|
| 52 | ; | 
|---|
| 53 | IF SDMODE=2 D | 
|---|
| 54 | . D LINE("Note: Child encounters re-linked as part of parent") | 
|---|
| 55 | . D LINE("      re-linking process are not listed below nor") | 
|---|
| 56 | . D LINE("      counted in the total above.") | 
|---|
| 57 | . D LINE("") | 
|---|
| 58 | ; | 
|---|
| 59 | ; -- layout of line | 
|---|
| 60 | D LINE("Message Format:") | 
|---|
| 61 | D LINE(" Piece    Description") | 
|---|
| 62 | D LINE(" -----    -----------") | 
|---|
| 63 | D LINE("   1      Status of update") | 
|---|
| 64 | D LINE("   2      Internal Entry Number of Outpatient Encounter file") | 
|---|
| 65 | D LINE("   3      Internal Entry Number of Parent Outpatient Encounter file") | 
|---|
| 66 | D LINE("   4      Internal Entry Number of Visit file") | 
|---|
| 67 | D LINE("   5      Patient Name") | 
|---|
| 68 | D LINE("   6      Encounter Date/Time") | 
|---|
| 69 | D LINE("   7      Hospital Location") | 
|---|
| 70 | D LINE("") | 
|---|
| 71 | ; | 
|---|
| 72 | ; --scan tmp records | 
|---|
| 73 | F I=0:0 S I=$O(@SDRT@(I)) Q:'I  D | 
|---|
| 74 | . D LINE(@SDRT@(I)) | 
|---|
| 75 | ; | 
|---|
| 76 | ; -- set up and fire bulletin | 
|---|
| 77 | S XMSUB="Unique Visit ID Cleanup is Complete",XMN=0 | 
|---|
| 78 | S XMTEXT="^TMP(""SDVISIT MSG"",$J," | 
|---|
| 79 | S XMDUZ=.5,XMY(DUZ)="" | 
|---|
| 80 | D ^XMD | 
|---|
| 81 | K ^TMP("SDVISIT MSG",$J) | 
|---|
| 82 | K SDCOUNT,SDTEXT,XMDUZ,XMN,XMSUB,XMTEXT,XMY,XMZ | 
|---|
| 83 | Q | 
|---|
| 84 | ; | 
|---|
| 85 | ; | 
|---|
| 86 | LINE(TEXT) ; add text to mail message | 
|---|
| 87 | S SDCOUNT=SDCOUNT+1,^TMP("SDVISIT MSG",$J,SDCOUNT)=TEXT | 
|---|
| 88 | Q | 
|---|
| 89 | ; | 
|---|
| 90 | RANGE(SDBEG,SDEND) ; -- select range | 
|---|
| 91 | N SDWITCH,SDT,X1,X2,X,DIR | 
|---|
| 92 | S (SDBEG,SDEND)=0,SDT=2961001 | 
|---|
| 93 | S DIR("B")=$$FDATE^VALM1(SDT) | 
|---|
| 94 | S DIR(0)="DA"_U_SDT_":"_DT_":EXP",DIR("A")="Select Beginning Date: " | 
|---|
| 95 | S DIR("?",1)="Enter a date between "_$$FMTE^XLFDT(SDT)_" to "_$$FMTE^XLFDT(DT)_".",DIR("?")=" " | 
|---|
| 96 | W ! D ^DIR K DIR G RANGEQ:Y'>0 S SDBEG=Y | 
|---|
| 97 | S DIR("B")=$$FDATE^VALM1(DT) | 
|---|
| 98 | S DIR(0)="DA"_U_SDBEG_":"_DT_":EXP",DIR("A")="Select    Ending Date: " | 
|---|
| 99 | S DIR("?",1)="Enter a date between "_$$FMTE^XLFDT(SDBEG)_" to "_$$FMTE^XLFDT(DT)_".",DIR("?")=" " | 
|---|
| 100 | D ^DIR K DIR G RANGEQ:Y'>0 S SDEND=Y_".235959" | 
|---|
| 101 | RANGEQ Q SDEND | 
|---|
| 102 | ; | 
|---|
| 103 | OK() ; -- ok to continue | 
|---|
| 104 | N DIR,Y | 
|---|
| 105 | S DIR("A")="Ok to continue" | 
|---|
| 106 | S DIR("B")="NO" | 
|---|
| 107 | S DIR(0)="Y" | 
|---|
| 108 | D ^DIR | 
|---|
| 109 | IF Y'=1 S Y=0 | 
|---|
| 110 | Q Y | 
|---|
| 111 | ; | 
|---|
| 112 | MODE() ; -- select update mode | 
|---|
| 113 | N DIR,Y | 
|---|
| 114 | S DIR(0)="S"_U_"1:Count Only;2:Fix Entries" | 
|---|
| 115 | S DIR("A")="Select update mode" | 
|---|
| 116 | S DIR("B")="Count Only" | 
|---|
| 117 | D ^DIR | 
|---|
| 118 | IF Y'=1,Y'=2 S Y=0 | 
|---|
| 119 | Q Y | 
|---|
| 120 | ; | 
|---|