source: FOIAVistA/trunk/r/SCHEDULING-SD-SC/SCDXFU01.m@ 677

Last change on this file since 677 was 628, checked in by George Lilly, 15 years ago

initial load of FOIAVistA 6/30/08 version

File size: 7.5 KB
Line 
1SCDXFU01 ;ALB/JRP - AMB CARE FILE UTILITIES;01-MAY-1996 ; 1/14/02 2:45pm
2 ;;5.3;Scheduling;**44,64,97,121,247**;AUG 13, 1993
3 ;
4CRTXMIT(ENCPTR,DELPTR,EVNTDATE) ;Create entry in TRANSMITTED OUTPATIENT
5 ; ENCOUNTER file (#409.73)
6 ;
7 ;Input : ENCPTR - Pointer to entry in OUTPATIENT ENCOUNTER
8 ; file (#409.68)
9 ; DELPTR - Pointer to entry in DELETED OUTPATIENT ENCOUNTER
10 ; file (#409.74)
11 ; EVNTDATE - Date/time the [DELETED] OUTPATIENT ENCOUNTER
12 ; occurred in FileMan format (Defaults to NOW)
13 ;Output : XMITPTR - Pointer to entry in TRANSMITTED OUTPATIENT
14 ; ENCOUNTER file (#409.73)
15 ; -1^Error - Unable to create entry / bad input
16 ;Note : When an encounter is deleted from the OUTPATIENT ENCOUNTER
17 ; file and an entry for the encounter is created in the
18 ; DELETED OUTPATIENT ENCOUNTER file, the ENCPTR and DELPTR
19 ; parameters should both be used. This allows an existing
20 ; entry that points to the OUTPATIENT ENCOUNTER file (ENCPTR)
21 ; to be repointed to the related entry entry in the DELETED
22 ; OUTPATIENT ENCOUNTER file (DELPTR). If an existing entry
23 ; for the OUTPATIENT ENCOUNTER is not found (or ENCPTR is not
24 ; passed/valid), a new entry will be created that points to
25 ; the DELETED OUTPATIENT ENCOUNTER.
26 ;Note : A value for DELPTR should not be passed when creating an
27 ; entry for an OUTPATIENT ENCOUNTER. A value for ENCPTR does
28 ; not have to be passed when creating an entry for a DELETED
29 ; OUTPATIENT ENCOUNTER, but is recommended.
30 ;Note : If an entry for the [DELETED] OUTPATIENT ENCOUNTER already
31 ; exists, a new entry will not be created and a pointer to
32 ; the existing entry will be returned.
33 ;
34 ;Check input
35 S ENCPTR=+$G(ENCPTR)
36 S DELPTR=+$G(DELPTR)
37 Q:(('ENCPTR)&('DELPTR)) "-1^Did not pass pointer to encounter"
38 Q:(('$D(^SCE(ENCPTR)))&('$D(^SD(409.74,DELPTR)))) "-1^Did not pass valid pointer to encounter"
39 S EVNTDATE=+$G(EVNTDATE)
40 S:('EVNTDATE) EVNTDATE="NOW"
41 ;Declare variables
42 N ADDENC,XMITPTR,DIE,DA,DR,DIDEL,DIC,DA,DINUM,DLAYGO,X,Y
43 ;do not recreate entries for encounters prior to 10/1/96
44 Q:$$ENCDT(ENCPTR,DELPTR)<2961001 "-1^Encounter Date is prior to 10/1/96"
45 ;Adding new Outpatient Encounter
46 S ADDENC=1
47 ;Adding new Deleted Outpatient Encounter
48 S:(DELPTR) ADDENC=0
49 ;Find existing Outpatient Encounter
50 S XMITPTR=+$O(^SD(409.73,"AENC",ENCPTR,""))
51 ;Adding an existing Outpatient Encounter - done
52 Q:((ADDENC)&(XMITPTR)) XMITPTR
53 ;Converting an Outpatient Encounter to a Deleted Outpatient Encounter
54 ; Swap pointer & store event info - done
55 I (('ADDENC)&(XMITPTR)) D Q XMITPTR
56 .S DIE="^SD(409.73,"
57 .S DA=XMITPTR
58 .S DR=".02///@;.03////^S X=DELPTR"
59 .D ^DIE
60 .D STREEVNT(XMITPTR,3,EVNTDATE,+$G(DUZ))
61 ;Adding a new [Deleted] Outpatient Encounter - create entry
62 ; using auto-numbering capabilities of file
63 S DIC="^SD(409.73,"
64 S DIC(0)="L"
65 S X="+"
66 S DLAYGO=409.73
67 ;Adding a new Outpatient Encounter
68 S DIC("DR")=".02////^S X=ENCPTR"
69 ;Adding a new Deleted Outpatient Encounter
70 S:('ADDENC) DIC("DR")=".03////^S X=DELPTR"
71 ;Create entry
72 D ^DIC
73 ;Get pointer to entry
74 S XMITPTR=+Y
75 ;Error creating entry
76 Q:(XMITPTR<0) "-1^Unable to create entry in Transmitted Outpatient Encounter file"
77 ;Store event info
78 D STREEVNT(XMITPTR,$S(('ADDENC):3,1:1),EVNTDATE,+$G(DUZ))
79 ;Done
80 Q XMITPTR
81 ;
82FINDXMIT(ENCPTR,DELPTR) ;Find entry in TRANSMITTED OUTPATIENT ENCOUNTER
83 ; file (#409.73)
84 ;
85 ;Input : ENCPTR - Pointer to entry in OUTPATIENT ENCOUNTER
86 ; file (#409.68)
87 ; DELPTR - Pointer to entry in DELETED OUTPATIENT ENCOUNTER
88 ; file (#409.74)
89 ;Output : XMITPTR - Pointer to entry in TRANSMITTED OUTPATIENT
90 ; ENCOUNTER file (#409.73)
91 ; 0 - Entry in TRANSMITTED OUTPATIENT ENCOUNTER file for the
92 ; [DELETED] OUTPATIENT ENCOUNTER does not exist
93 ;Note : A value for DELPTR should not be passed if finding an entry
94 ; for an OUTPATIENT ENCOUNTER. A value for ENCPTR should not
95 ; be passed if finding an entry for a DELETED OUTPATIENT
96 ; ENCOUNTER. If values for both parameters are passed, the
97 ; pointer to the OUTPATIENT ENCOUNTER will be used.
98 ;
99 ;Check input
100 S ENCPTR=+$G(ENCPTR)
101 S DELPTR=+$G(DELPTR)
102 Q:(('ENCPTR)&('DELPTR)) 0
103 ;Find entry for Outpatient Encounter - done
104 Q:(ENCPTR) +$O(^SD(409.73,"AENC",ENCPTR,""))
105 ;Find entry for Deleted Outpatient Encounter - done
106 Q +$O(^SD(409.73,"ADEL",DELPTR,""))
107 ;
108STREEVNT(XMITPTR,XMITEVNT,EVNTDATE,EVNTDUZ) ;Store event information for
109 ; entry in TRANSMITTED OUTPATIENT ENCOUNTER file (#409.73)
110 ;
111 ;Input : XMITPTR - Pointer to entry in TRANSMITTED OUTPATIENT
112 ; ENCOUNTER file (#409.73)
113 ; XMITEVNT - Flag denoting event causing transmission
114 ; 0 = Retransmit (DEFAULT)
115 ; 1 = Addition of entry in OUTPATIENT ENCOUNTER file
116 ; 2 = Editing of entry in OUTPATIENT ENCOUNTER file
117 ; 3 = Deletion of entry in OUTPATIENT ENCOUNTER file
118 ; (Addition of entry in DELETED OUTPATIENT
119 ; ENCOUNTER file)
120 ; EVNTDATE - Date/time event causing transmission occurred
121 ; in FileMan format (defaults to NOW)
122 ; EVNTDUZ - Pointer to entry in NEW PERSON file (#2) that
123 ; caused the event to occur (defaults to current DUZ)
124 ;Output : None
125 ;Notes : If EVNTDUZ and/or the current DUZ are not valid, POSTMASTER
126 ; (.5) will be used
127 ;
128 ;Check input
129 S XMITPTR=+$G(XMITPTR)
130 Q:('XMITPTR)
131 Q:('$D(^SD(409.73,XMITPTR)))
132 S XMITEVNT=+$G(XMITEVNT)
133 S:((XMITEVNT<0)!(XMITEVNT>3)) XMITEVNT=0
134 S EVNTDATE=+$G(EVNTDATE)
135 S:('EVNTDATE) EVNTDATE="NOW"
136 S EVNTDUZ=+$G(EVNTDUZ,$G(DUZ))
137 S:('$D(^VA(200,EVNTDUZ,0))) EVNTDUZ=.5
138 ;Declare variables
139 N DIE,DA,DR,DIDEL,X,Y,DIC
140 ;Store event data
141 S DIE="^SD(409.73,"
142 S DA=XMITPTR
143 S DR=".05////^S X=XMITEVNT;.06///^S X=EVNTDATE;.07////^S X=EVNTDUZ"
144 D ^DIE
145 ;Done
146 Q
147 ;
148XMITFLAG(XMITPTR,RESET) ;Set/reset transmission flag for entry in
149 ; TRANSMITTED OUTPATIENT ENCOUNTER file (#409.73)
150 ;
151 ;Input : XMITPTR - Pointer to entry in TRANSMITTED OUTPATIENT
152 ; ENCOUNTER file (#409.73)
153 ; RESET - Denotes if transmission field should be turned
154 ; on or off
155 ; 0 = Set TRANSMISSION REQUIRED field (#.04) equal
156 ; to 'YES' (DEFAULT)
157 ; 1 = Set TRANSMISSION REQUIRED field (#.04) equal
158 ; to 'NO'
159 ;Output : None
160 ;Notes : Setting the TRANSMISSION REQUIRED field to 'YES' flags
161 ; the entry for transmission
162 ;
163 ;Check input
164 S XMITPTR=+$G(XMITPTR)
165 Q:('$D(^SD(409.73,XMITPTR)))
166 S RESET=+$G(RESET)
167 ;Declare variables
168 N DIE,DA,DR,DIDEL,X,Y,DIC
169 ;Store new value for transmission flag
170 S DIE="^SD(409.73,"
171 S DA=XMITPTR
172 ;Set transmission flag
173 S DR=".04///YES"
174 ;Reset transmission flag
175 S:(RESET) DR=".04///NO"
176 D ^DIE
177 ;If turning flag on, check for late activity & send bulletin
178 I 'RESET I +$$XMIT4DBC^SCDXFU04(XMITPTR)>0 D LATEACT^SCDXMSG2(XMITPTR) ;SD*5.3*247
179 ;Done
180 Q
181 ;
182ENCDT(ENCPTR,DELPTR) ;returns the date of the encounter
183 ; Input : ENCPTR - Pointer to entry in OUTPATIENT ENCOUNTER
184 ; file (#409.68)
185 ; DELPTR - Pointer to entry in DELETED OUTPATIENT ENCOUNTER
186 ; file (#409.74)
187 ; Returned: Date of encounter (#.01 of #409.68)
188 Q $S($D(^SCE(+$G(ENCPTR),0)):+^(0),$D(^SD(409.74,+$G(DELPTR),0)):^(0),1:"-1^No Pointer")
Note: See TracBrowser for help on using the repository browser.