1 | SCDXRT01 ;ALB/JRP - AMB CARE RETRANSMISSION;09-MAY-1996
|
---|
2 | ;;5.3;Scheduling;**44**;AUG 13, 1993
|
---|
3 | ;
|
---|
4 | RTRNRNG ;Mark all [Deleted] Outpatient Encounters for a user specified
|
---|
5 | ; date range for retransmission to the National Ambulatory Care
|
---|
6 | ; Database
|
---|
7 | ;
|
---|
8 | ;Input : None
|
---|
9 | ;Output : None
|
---|
10 | ;Note : User is prompted for the date range to retransmit
|
---|
11 | ; : Encounters that are not contained in the Transmitted
|
---|
12 | ; Outpatient Encounter file (#409.73) can not be
|
---|
13 | ; retransmitted
|
---|
14 | ; : [Deleted] Encounters that occurred before switching to new
|
---|
15 | ; transmission format can not be retransmitted
|
---|
16 | ; : [Deleted] Encounters that occurred within the last two days
|
---|
17 | ; can not be retransmitted
|
---|
18 | ;
|
---|
19 | ;Declare variables
|
---|
20 | N MINDT,MAXDT,SCDXSTRT,SCDXEND,HELPTXT,X,%H,%,%I
|
---|
21 | N ZTSK,ZTDESC,ZTRTN,ZTIO,ZTDTH
|
---|
22 | W !!
|
---|
23 | ;Cut-off date for old transmission format is earliest date
|
---|
24 | ; allowed for retransmission (default to 10/1/96)
|
---|
25 | S MINDT=+$P($G(^SD(404.91,1,"AMB")),"^",2)
|
---|
26 | S:('MINDT) MINDT=2961001
|
---|
27 | ;Today is the latest date allowed for retransmission
|
---|
28 | D NOW^%DTC
|
---|
29 | S MAXDT=X
|
---|
30 | ;Set up help text for getting beginning and ending dates
|
---|
31 | S HELPTXT("BGN")="Enter the beginning date for retransmitting encounters"
|
---|
32 | S HELPTXT("END")="Enter the ending date for retransmitting encounters"
|
---|
33 | ;Get beginning and ending dates
|
---|
34 | S X=$$GETDTRNG^SCDXUTL1(MINDT,MAXDT,"HELPTXT(""BGN"")","HELPTXT(""END"")")
|
---|
35 | ;User abort / time out
|
---|
36 | Q:(X<0)
|
---|
37 | W !!
|
---|
38 | ;Verify that user wants to do this
|
---|
39 | S SCDXSTRT=$P(X,"^",1)
|
---|
40 | S SCDXEND=$P(X,"^",2)
|
---|
41 | S DIR("A",1)=" "
|
---|
42 | S DIR("A",2)=" "
|
---|
43 | S X=(+$E(SCDXSTRT,4,5))_"/"_(+$E(SCDXSTRT,6,7))_"/"_(1700+$E(SCDXSTRT,1,3))
|
---|
44 | S DIR("A",3)="All outpatient encounters that occurred between "_X
|
---|
45 | S X=(+$E(SCDXEND,4,5))_"/"_(+$E(SCDXEND,6,7))_"/"_(1700+$E(SCDXEND,1,3))
|
---|
46 | S DIR("A",4)="and "_X_" will be marked for retransmission to the"
|
---|
47 | S DIR("A",5)="National Patient Care Database."
|
---|
48 | S DIR("A",6)=" "
|
---|
49 | S DIR("A",7)=" "
|
---|
50 | S DIR("A")="Are you sure you want to do this ? "
|
---|
51 | S DIR(0)="YA"
|
---|
52 | D ^DIR
|
---|
53 | ;Not verified / user abort / time out
|
---|
54 | Q:('Y)
|
---|
55 | ;Queue marking for retransmission
|
---|
56 | S ZTRTN="TASKRX^SCDXRT01"
|
---|
57 | S ZTDESC="Mark [Deleted] Outpatient Encounters for retransmission"
|
---|
58 | S ZTDTH=$H
|
---|
59 | S ZTIO=""
|
---|
60 | S ZTSAVE("SCDXSTRT")=SCDXSTRT
|
---|
61 | S ZTSAVE("SCDXEND")=SCDXEND
|
---|
62 | K ZTSK D ^%ZTLOAD
|
---|
63 | W:('$G(ZTSK)) !!,"** UNABLE TO QUEUE MARKING OF ENCOUNTERS FOR RETRANSMISSION **",!!
|
---|
64 | W:($G(ZTSK)) !!,"Marking of encounters for retransmission queued as task number ",ZTSK
|
---|
65 | W !!
|
---|
66 | Q
|
---|
67 | ;
|
---|
68 | TASKRX ;Mark all [Deleted] Outpatient Encounters in a given date range
|
---|
69 | ; for retransmission
|
---|
70 | ;
|
---|
71 | ;Input : SCDXSTRT - Date to begin marking encounters from
|
---|
72 | ; (FileMan format) (Required)
|
---|
73 | ; SCDXEND - Date to end marking encounters at
|
---|
74 | ; (FileMan format) (Required)
|
---|
75 | ;Output : None
|
---|
76 | ;Notes : Encounters that are not contained in the Transmitted
|
---|
77 | ; Outpatient Encounter file (#409.73) can not be
|
---|
78 | ; retransmitted
|
---|
79 | ; : This entry point should be used when marking for
|
---|
80 | ; retransmission is being queued. If queued, ZTSTOP will
|
---|
81 | ; be set accordingly.
|
---|
82 | ;
|
---|
83 | ;Check input
|
---|
84 | Q:('$G(SCDXSTRT))
|
---|
85 | Q:('$G(SCDXEND))
|
---|
86 | ;Declare variables
|
---|
87 | N JUNK
|
---|
88 | ;Call module to mark entries for retransmission
|
---|
89 | S JUNK=$$REXMIT(SCDXSTRT,SCDXEND)
|
---|
90 | ;Set ZTSTOP accordingly
|
---|
91 | S:($P(JUNK,"^",4)) ZTSTOP=1
|
---|
92 | ;Done
|
---|
93 | Q
|
---|
94 | ;
|
---|
95 | REXMIT(STARTDT,ENDDT) ;Mark all [Deleted] Outpatient Encounters in a
|
---|
96 | ; given date range for retransmission
|
---|
97 | ;
|
---|
98 | ;Input : STARTDT - Date to begin marking encounters from
|
---|
99 | ; (FileMan format) (Required)
|
---|
100 | ; ENDDT - Date to end marking encounters at (FileMan format)
|
---|
101 | ; (Required)
|
---|
102 | ;Output : Tot^Enc^Del^Stop - Number of [deleted] encounters marked for
|
---|
103 | ; retransmission
|
---|
104 | ; Tot - Total number of encounters marked
|
---|
105 | ; Enc - Number of existing encounters marked
|
---|
106 | ; Del - Number of deleted encounters marked
|
---|
107 | ; Stop - Flag indicating if task was asked to stop
|
---|
108 | ; 1 = Task was asked to stop
|
---|
109 | ; 0 = Task was not asked to stop
|
---|
110 | ; 0 - No encounters marked / bad input
|
---|
111 | ;Notes : Encounters that are not contained in the Transmitted
|
---|
112 | ; Outpatient Encounter file (#409.73) can not be
|
---|
113 | ; retransmitted
|
---|
114 | ;
|
---|
115 | ;Check input
|
---|
116 | S STARTDT=+$G(STARTDT)
|
---|
117 | Q:('STARTDT)
|
---|
118 | S ENDDT=+$G(ENDDT)
|
---|
119 | Q:('ENDDT)
|
---|
120 | ;Declare variables
|
---|
121 | N XMITPTR,ENCPTR,DELPTR,ENCDATE,EVNTDATE,DELCNT,ENCCNT,STOP,LOOP
|
---|
122 | S STOP=0
|
---|
123 | ;Add one second before midnight to ending date
|
---|
124 | S ENDDT=ENDDT+.235959
|
---|
125 | ;Find all deleted encounters that fall in date range
|
---|
126 | S ENCDATE=STARTDT-.000001
|
---|
127 | S DELCNT=0
|
---|
128 | F LOOP=1:1 S ENCDATE=+$O(^SD(409.74,"B",ENCDATE)) Q:(('ENCDATE)!(ENCDATE>ENDDT)) D Q:(STOP)
|
---|
129 | .;Check for request to stop
|
---|
130 | .I ('(LOOP#10)) S STOP=$$S^%ZTLOAD(DELCNT_" encounters have been marked for retransmission") Q:(STOP)
|
---|
131 | .S DELPTR=0
|
---|
132 | .F S DELPTR=+$O(^SD(409.74,"B",ENCDATE,DELPTR)) Q:('DELPTR) D
|
---|
133 | ..;Find entry in Transmitted Outpatient Encounter file
|
---|
134 | ..S XMITPTR=+$O(^SD(409.73,"ADEL",DELPTR,0))
|
---|
135 | ..;Entry not found - don't retransmit
|
---|
136 | ..Q:('XMITPTR)
|
---|
137 | ..;Mark entry for retransmission
|
---|
138 | ..D STREEVNT^SCDXFU01(XMITPTR,0)
|
---|
139 | ..;Turn on transmission flag
|
---|
140 | ..D XMITFLAG^SCDXFU01(XMITPTR)
|
---|
141 | ..;Increment count of deleted encounters marked
|
---|
142 | ..S DELCNT=DELCNT+1
|
---|
143 | ;Task was asked to stop - abort
|
---|
144 | Q:(STOP) DELCNT_"^^"_DELCNT_"^1"
|
---|
145 | ;Find all encounters that fall in date range
|
---|
146 | S ENCCNT=0
|
---|
147 | S ENCDATE=STARTDT-.000001
|
---|
148 | F LOOP=1:1 S ENCDATE=+$O(^SCE("B",ENCDATE)) Q:(('ENCDATE)!(ENCDATE>ENDDT)) D Q:(STOP)
|
---|
149 | .;Check for request to stop
|
---|
150 | .I ('(LOOP#10)) S STOP=$$S^%ZTLOAD((ENCCNT+DELCNT)_" encounters have been marked for retransmission") Q:(STOP)
|
---|
151 | .S ENCPTR=0
|
---|
152 | .F S ENCPTR=+$O(^SCE("B",ENCDATE,ENCPTR)) Q:('ENCPTR) D
|
---|
153 | ..;Find entry in Transmitted Outpatient Encounter file
|
---|
154 | ..S XMITPTR=+$O(^SD(409.73,"AENC",ENCPTR,0))
|
---|
155 | ..;Entry not found - don't retransmit
|
---|
156 | ..Q:('XMITPTR)
|
---|
157 | ..;Mark entry for retransmission
|
---|
158 | ..D STREEVNT^SCDXFU01(XMITPTR,0)
|
---|
159 | ..;Turn on transmission flag
|
---|
160 | ..D XMITFLAG^SCDXFU01(XMITPTR)
|
---|
161 | ..;Increment count of encounters marked
|
---|
162 | ..S ENCCNT=ENCCNT+1
|
---|
163 | ;Done
|
---|
164 | Q (DELCNT+ENCCNT)_"^"_ENCCNT_"^"_DELCNT_"^"_STOP
|
---|