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