1 | SCDXFU03 ;ALB/JRP - AMBULATORY CARE FILE UTILITIES;01-JUL-1996
|
---|
2 | ;;5.3;Scheduling;**44,110,121,126,128**;AUG 13, 1993
|
---|
3 | ;
|
---|
4 | DELXMIT(PTR,PTR2) ;Delete entry in TRANSMITTED OUTPATIENT ENCOUNTER
|
---|
5 | ; file (#409.73)
|
---|
6 | ;
|
---|
7 | ;Input : PTR - Pointer to entry in one of the following files
|
---|
8 | ; * TRANSMITTED OUTPATIENT ENCOUNTER file (#409.73)
|
---|
9 | ; * OUTPATIENT ENCOUNTER file (#409.68)
|
---|
10 | ; * DELETED OUTPATIENT ENCOUNTER file (#409.74)
|
---|
11 | ; PTR2 - Denotes which file PTR points to
|
---|
12 | ; 0 = TRANSMITTED OUTPATIENT ENCOUNTER file (Default)
|
---|
13 | ; 1 = OUTPATIENT ENCOUNTER file
|
---|
14 | ; 2 = DELETED OUTPATIENT ENCOUNTER file
|
---|
15 | ;Output : 0 - Success
|
---|
16 | ; -1 - Unable to delete entry
|
---|
17 | ;Note : Success (0) is returned when a valid pointer to the
|
---|
18 | ; specified file is not passed or an entry in the
|
---|
19 | ; TRANSMITTED OUTPATIENT ENCOUNTER file can not be found
|
---|
20 | ; (Deleting an entry that doesn't exist is successful)
|
---|
21 | ; : If the TRANSMITTED OUTPATIENT ENCOUNTER points to an entry
|
---|
22 | ; in the DELETED OUTPATIENT ENCOUNTER file, the DELETED
|
---|
23 | ; OUTPATIENT ENCOUNTER will also be deleted
|
---|
24 | ;
|
---|
25 | ;Check input
|
---|
26 | S PTR=+$G(PTR)
|
---|
27 | S PTR2=+$G(PTR2)
|
---|
28 | S:((PTR2<0)!(PTR2>2)) PTR2=0
|
---|
29 | ;Declare variables
|
---|
30 | N DIK,DA,X,Y,DIC,XMITPTR,DELPTR
|
---|
31 | ;Get pointer to TRANSMITTED OUTPATIENT ENCOUNTER file
|
---|
32 | S XMITPTR=PTR
|
---|
33 | S:(PTR2=1) XMITPTR=+$O(^SD(409.73,"AENC",PTR,0))
|
---|
34 | S:(PTR2=2) XMITPTR=+$O(^SD(409.73,"ADEL",PTR,0))
|
---|
35 | ;Entry in TRANSMITTED OUTPATIENT ENCOUNTER file doesn't exist - success
|
---|
36 | Q:('$D(^SD(409.73,XMITPTR,0))) 0
|
---|
37 | ;Delete all entries in TRANSMITTED OUTPATIENT ENCOUNTER ERROR file
|
---|
38 | ; (#409.75) that refer to entry being deleted
|
---|
39 | D DELAERR^SCDXFU02(XMITPTR)
|
---|
40 | ;Delete all entries in ACRP Transmission History file (#409.77)
|
---|
41 | D DELAHIST^SCDXFU10(XMITPTR)
|
---|
42 | ;Delete entry in DELETED OUTPATIENT ENCOUNTER file (#409.74)
|
---|
43 | S DELPTR=+$$XMIT4DEL^SCDXFU11(XMITPTR)
|
---|
44 | S:(DELPTR>0) X=$$DELDEL^SCDXFU02(DELPTR)
|
---|
45 | ;Delete entry
|
---|
46 | S DIK="^SD(409.73,"
|
---|
47 | S DA=XMITPTR
|
---|
48 | D ^DIK
|
---|
49 | ;Done
|
---|
50 | Q 0
|
---|
51 | ;
|
---|
52 | XMITDATA(XMITPTR,XMITDATE,MID,BID) ;Store transmission data for entry in
|
---|
53 | ; TRANSMITTED OUTPATIENT ENCOUNTER file (#409.73)
|
---|
54 | ;
|
---|
55 | ;Input : XMITPTR - Pointer to entry in TRANSMITTED OUTPATIENT
|
---|
56 | ; ENCOUNTER file (#409.73)
|
---|
57 | ; XMITDATE - FileMan ate/time entry was transmitted to National
|
---|
58 | ; Patient Care Database (Defaults to NOW)
|
---|
59 | ; MID - Message Control ID used when entry was transmitted
|
---|
60 | ; to National Patient Care Database
|
---|
61 | ; BID - Batch Control ID used when entry was transmitted
|
---|
62 | ; to National Patient Care Database
|
---|
63 | ;Output : None
|
---|
64 | ;
|
---|
65 | ;Check input
|
---|
66 | S XMITPTR=+$G(XMITPTR)
|
---|
67 | Q:('$D(^SD(409.73,XMITPTR)))
|
---|
68 | S XMITDATE=+$G(XMITDATE)
|
---|
69 | S:('XMITDATE) XMITDATE="NOW"
|
---|
70 | S MID=$G(MID)
|
---|
71 | S BID=$G(BID)
|
---|
72 | ;Declare variables
|
---|
73 | N DIE,DA,DR,DIDEL,X,Y,DIC
|
---|
74 | ;Store transmission data
|
---|
75 | S DIE="^SD(409.73,"
|
---|
76 | S DA=XMITPTR
|
---|
77 | S DR="11///^S X=XMITDATE;12///^S X=MID;13///^S X=BID"
|
---|
78 | D ^DIE
|
---|
79 | ;Done
|
---|
80 | Q
|
---|
81 | ;
|
---|
82 | ACKDATA(XMITPTR,ACKDATE,ACKCODE) ;Store acknowledgement data for entry
|
---|
83 | ; in TRANSMITTED OUTPATIENT ENCOUNTER file (#409.73)
|
---|
84 | ;
|
---|
85 | ;Input : XMITPTR - Pointer to entry in TRANSMITTED OUTPATIENT
|
---|
86 | ; ENCOUNTER file (#409.73)
|
---|
87 | ; ACKDATE - FileMan date/time acknowledgement from National
|
---|
88 | ; Patient Care Database was received (Defaults to NOW)
|
---|
89 | ; ACKCODE - Denotes type of acknowledgement received
|
---|
90 | ; A = Transmission was accepted (DEFAULT)
|
---|
91 | ; R = Transmission was rejected
|
---|
92 | ; E = Error
|
---|
93 | ;Output : None
|
---|
94 | ;
|
---|
95 | ;Check input
|
---|
96 | S XMITPTR=+$G(XMITPTR)
|
---|
97 | Q:('$D(^SD(409.73,XMITPTR)))
|
---|
98 | S ACKDATE=+$G(ACKDATE)
|
---|
99 | S:('ACKDATE) ACKDATE="NOW"
|
---|
100 | S ACKCODE=$G(ACKCODE)
|
---|
101 | S:("ARE"'[ACKCODE) ACKCODE="A"
|
---|
102 | ;Declare variables
|
---|
103 | N DIE,DA,DR,DIDEL,X,Y,DIC
|
---|
104 | ;Store acknowledgement data
|
---|
105 | S DIE="^SD(409.73,"
|
---|
106 | S DA=XMITPTR
|
---|
107 | S DR="14///^S X=ACKDATE;15////^S X=ACKCODE"
|
---|
108 | D ^DIE
|
---|
109 | ;Done
|
---|
110 | Q
|
---|
111 | ;
|
---|
112 | XMITED(ENCPTR) ;Determine if Outpatient Encounter was ever transmitted to the
|
---|
113 | ; National Patient Care Database
|
---|
114 | ;
|
---|
115 | ;Input : ENCPTR - Pointer to Outpatient Encounter
|
---|
116 | ;Output : DateTime - Date of last transmission (FileMan format)
|
---|
117 | ; 0 - Encounter never transmitted
|
---|
118 | ;Notes : Zero (0) will be returned on bad input
|
---|
119 | ;
|
---|
120 | ;Check input
|
---|
121 | S ENCPTR=+$G(ENCPTR)
|
---|
122 | Q:('ENCPTR) 0
|
---|
123 | ;Declare variables
|
---|
124 | N XMITPTR,XMITDATE,XMITHIST
|
---|
125 | S XMITHIST=$NA(^TMP("SCDXFU03",$J,"XMITED"))
|
---|
126 | K @XMITHIST
|
---|
127 | ;Find entry in transmission file (#409.73)
|
---|
128 | S XMITPTR=+$O(^SD(409.73,"AENC",ENCPTR,0))
|
---|
129 | Q:('XMITPTR) 0
|
---|
130 | Q:('$D(^SD(409.73,XMITPTR,0))) 0
|
---|
131 | ;Get transmission history
|
---|
132 | S XMITDATE=$$HST4XMIT^SCDXFU13(XMITPTR,XMITHIST,1)
|
---|
133 | ;Get last transmission date/time
|
---|
134 | S XMITDATE=+$O(@XMITHIST@(""),-1)
|
---|
135 | ;Clean up and return date/time of last transmission
|
---|
136 | K @XMITHIST
|
---|
137 | Q XMITDATE
|
---|
138 | ;
|
---|
139 | ACCEPTED(ENCPTR) ;Determine if Outpatient Encounter was ever accepted
|
---|
140 | ; by the National Patient Care Database (i.e. ACK = Accept)
|
---|
141 | ;
|
---|
142 | ;Input : ENCPTR - Pointer to Outpatient Encounter
|
---|
143 | ;Output : DateTime - Date/time of last successfull ack (FileMan)
|
---|
144 | ; 0 - Encounter never accepted
|
---|
145 | ;Notes : Zero (0) will be returned on bad input
|
---|
146 | ;
|
---|
147 | ;Check input
|
---|
148 | S ENCPTR=+$G(ENCPTR)
|
---|
149 | Q:('ENCPTR) 0
|
---|
150 | ;Declare variables
|
---|
151 | N XMITPTR,ACKDATE,ACKHIST
|
---|
152 | S ACKHIST=$NA(^TMP("SCDXFU03",$J,"ACCEPTED"))
|
---|
153 | K @ACKHIST
|
---|
154 | ;Find entry in transmission file (#409.73)
|
---|
155 | S XMITPTR=+$O(^SD(409.73,"AENC",ENCPTR,0))
|
---|
156 | Q:('XMITPTR) 0
|
---|
157 | Q:('$D(^SD(409.73,XMITPTR,0))) 0
|
---|
158 | ;Get acknowledgement history
|
---|
159 | S ACKDATE=$$HST4XMIT^SCDXFU13(XMITPTR,ACKHIST,2)
|
---|
160 | ;Search history for last ack with code of ACCEPT
|
---|
161 | S ACKDATE=""
|
---|
162 | F S ACKDATE=+$O(@ACKHIST@(ACKDATE),-1) Q:('ACKDATE) Q:($P($G(@ACKHIST@(ACKDATE)),"^",3)="A")
|
---|
163 | ;Clean up and return date/time of last successfull ack
|
---|
164 | K @ACKHIST
|
---|
165 | Q ACKDATE
|
---|
166 | ;
|
---|
167 | VIDCNT(VSITID,EXCLUDE) ;Determine the number of parent Outpatient
|
---|
168 | ; Encounters that have the given Visit ID
|
---|
169 | ;
|
---|
170 | ;Input : VSITID - Visit ID to check for (NOT THE POINTER TO 9000010)
|
---|
171 | ; EXCLUDE - Encounter to optionally exclude from count
|
---|
172 | ;Output : N - Number of parent encounters found
|
---|
173 | ;Notes : Stand alone add/edits are considered a parent encounter
|
---|
174 | ; : Zero (0) is returned if the Visit ID is not valid
|
---|
175 | ;
|
---|
176 | ;Check input
|
---|
177 | S VSITID=$G(VSITID)
|
---|
178 | Q:(VSITID="") 0
|
---|
179 | S EXCLUDE=+$G(EXCLUDE)
|
---|
180 | S:('$D(^SCE(EXCLUDE,0))) EXCLUDE=0
|
---|
181 | ;Declare variables
|
---|
182 | N ENCPTR,VSITPTR,COUNT
|
---|
183 | ;Get pointer to Visit
|
---|
184 | S VSITPTR=$$VID2IEN^VSIT(VSITID)
|
---|
185 | Q:(VSITPTR<1) 0
|
---|
186 | ;Count parent encounters for visit
|
---|
187 | S COUNT=0
|
---|
188 | S ENCPTR=0
|
---|
189 | F S ENCPTR=+$O(^SCE("AVSIT",VSITPTR,ENCPTR)) Q:('ENCPTR) D
|
---|
190 | .;Bad entry in x-ref
|
---|
191 | .Q:('$D(^SCE(ENCPTR,0)))
|
---|
192 | .;Exclude input encounter
|
---|
193 | .Q:(ENCPTR=EXCLUDE)
|
---|
194 | .;Screen out children
|
---|
195 | .Q:(+$P($G(^SCE(ENCPTR,0)),"^",6))
|
---|
196 | .;Increment count
|
---|
197 | .S COUNT=COUNT+1
|
---|
198 | Q COUNT
|
---|