1 | DGRUADT0 ;ALB/GRR - INTEGRATED SITE PROCESSING FOR RAI/MDS ADT MESSAGING; 7-8-99
|
---|
2 | ;;5.3;Registration;**190,312,328**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | MV4(DFN,DGPMA) ;
|
---|
5 | N VAIP,DGWDP,DGWDA,DGPDIV,DGCDIV,DGINTEG
|
---|
6 | ;
|
---|
7 | ; Variables
|
---|
8 | ; VAIP - Patient Data array from lookup utility
|
---|
9 | ; DGWDP - Ward prior to the transfer
|
---|
10 | ; DGWDA - Ward after the transfer
|
---|
11 | ; DGPDIV - Division of Ward prior to transfer
|
---|
12 | ; DGCDIV - Division of Ward after transfer
|
---|
13 | ; DGINTEG - Integrated Site flag
|
---|
14 | ; 0 - Not Integrated Site
|
---|
15 | ; 1 - Integrated Site, Single Database
|
---|
16 | ; 2 - Integrated Site, Multiple Database
|
---|
17 | ;
|
---|
18 | ; Input
|
---|
19 | ; DFN - IEN to Patient File #2
|
---|
20 | ; DGPMA - 0 node of patient movement file #405
|
---|
21 | ;
|
---|
22 | ; Get before and after wards
|
---|
23 | S VAIP("D")="LAST",VAIP("M")=1
|
---|
24 | D IN5^VADPT
|
---|
25 | ;
|
---|
26 | ; Get ward prior to transfer, if no movement, then get the admission ward
|
---|
27 | S DGWDP=+VAIP(15,4)
|
---|
28 | S:'DGWDP DGWDP=+VAIP(13,4)
|
---|
29 | ;
|
---|
30 | ; Get ward after transfer
|
---|
31 | S DGWDA=+VAIP(5)
|
---|
32 | ;
|
---|
33 | ;Get Division prior to transfer
|
---|
34 | S DGPDIV=+$$GETDIV^DGRUUTL1(DGWDP)
|
---|
35 | ;
|
---|
36 | ;Get Ien of prior Movement
|
---|
37 | S DGPPMDA=$S($G(DGPMP)]"":$O(^DGPM("B",+DGPMP,0)),$G(DGPM0)]"":$O(^DGPM("B",+DGPM0,0)),1:"")
|
---|
38 | ;
|
---|
39 | ;Get Division after transfer
|
---|
40 | S DGCDIV=+$$GETDIV^DGRUUTL1(DGWDA)
|
---|
41 | ;
|
---|
42 | ;Get Integration flag
|
---|
43 | S DGINTEG=$$GET1^DIQ(43,1,391.705,"I")
|
---|
44 | ;
|
---|
45 | ; If Transfer from MDS to MDS ward, send A02 transfer to COTS
|
---|
46 | I $$CHKWARD^DGRUUTL(DGWDP)&($$CHKWARD^DGRUUTL(DGWDA)) D
|
---|
47 | . I DGINTEG=1!(DGINTEG=2),DGPDIV'=DGCDIV D
|
---|
48 | . . ;If Integrated Database and Wards are in different divisions
|
---|
49 | . . ;Need to create an Admit to new Accu-Max Entity/Box
|
---|
50 | . . ;Need to create Discharge for old Accu-Max Entity/Box
|
---|
51 | . . D BLDMSG^DGRUADT1(DFN,"A03",DGPMDA,+DGPMA,DGWDP)
|
---|
52 | . . D BLDMSG^DGRUADT1(DFN,"A01",DGPMDA,+DGPMA,DGWDA)
|
---|
53 | . E D BLDMSG^DGRUADT1(DFN,"A02",DGPMDA,+DGPMA,DGWDA)
|
---|
54 | ;
|
---|
55 | ; If Transfer from MDS to non-MDS ward, send A03 discharge to COTS
|
---|
56 | I $$CHKWARD^DGRUUTL(DGWDP)&('$$CHKWARD^DGRUUTL(DGWDA)) D
|
---|
57 | . D BLDMSG^DGRUADT1(DFN,"A03",DGPMDA,+DGPMA,DGWDA)
|
---|
58 | ;
|
---|
59 | ; If Transfer from non-MDS to MDS ward, send A01 admission to COTS
|
---|
60 | I '$$CHKWARD^DGRUUTL(DGWDP)&($$CHKWARD^DGRUUTL(DGWDA)) D
|
---|
61 | . D BLDMSG^DGRUADT1(DFN,"A01",DGPMDA,+DGPMA,DGWDA)
|
---|
62 | ;
|
---|
63 | ; If transfer from non-MDS to non-MDS ward: Do Nothing
|
---|
64 | Q
|
---|
65 | ;
|
---|
66 | MV40(DFN) ; Transfer TO ASIH (VAH)
|
---|
67 | N NHCUADMT,NHCUNODE,PSUEDO,PSUNODE
|
---|
68 | ; Variables
|
---|
69 | ; NHCUADMT - admission IEN to NHCU
|
---|
70 | ; NHCUNODE - Movement entry for admission to NHCU
|
---|
71 | ; MEDADMT - Admission to ASIH Medical ward
|
---|
72 | ; MEDNODE - movement entry to medical ward
|
---|
73 | ; PSUEDO - Psuedo transfer IEN
|
---|
74 | ; PSUNODE - Psuedi discharge node
|
---|
75 | ;
|
---|
76 | ; Retrieve transfer movement
|
---|
77 | S TRANSFER=$O(VAFH(2,0))
|
---|
78 | S TRSNODE=VAFH(2,TRANSFER,"A")
|
---|
79 | ;
|
---|
80 | ; Retrieve admission movement from transfer
|
---|
81 | S NHCUADMT=$P(TRSNODE,"^",14)
|
---|
82 | S NHCUNODE=VAFH(1,NHCUADMT,"A")
|
---|
83 | ;
|
---|
84 | ; Retrieve the ward the patient was admitted to prior to psuedo discharge
|
---|
85 | S DGWARD=+$P(NHCUNODE,"^",6)
|
---|
86 | ; If the ward was flagged RAI, send discharge message to COTS.
|
---|
87 | I $$CHKWARD^DGRUUTL(DGWARD) D
|
---|
88 | . D BLDMSG^DGRUADT1(DFN,"A21",TRANSFER,$P(TRSNODE,"^"),DGWARD)
|
---|
89 | . D ADDASIH^DGRUASIH(DFN,+TRSNODE) ;added 11/22/00 p-328
|
---|
90 | Q
|
---|
91 | ;
|
---|
92 | MV41(DFN) ; Discharge from ASIH
|
---|
93 | N TRANSFER,TRSNODE,DGWARD
|
---|
94 | ;
|
---|
95 | ; Retrieve transfer
|
---|
96 | S TRANSFER=$O(VAFH(2,0))
|
---|
97 | S TRSNODE=VAFH(2,TRANSFER,"A")
|
---|
98 | ;
|
---|
99 | ; Retrieve ward transferred to from ASIH discharge
|
---|
100 | S DGWARD=$P(TRSNODE,"^",6)
|
---|
101 | ;
|
---|
102 | I $$CHKWARD^DGRUUTL(DGWARD) D
|
---|
103 | . D BLDMSG^DGRUADT1(DFN,"A22",TRANSFER,+TRSNODE,DGWARD)
|
---|
104 | . D ADDRDT^DGRUASIH(DFN,+TRSNODE) ;added 11/22/00 p-328
|
---|
105 | Q
|
---|
106 | ;
|
---|
107 | CN40(DFN) ; Cancel TO ASIH admission
|
---|
108 | N NHCUADMT,NHCUNODE,TRANSFER,TRSNODE,DGWARD
|
---|
109 | ;
|
---|
110 | ; Retrieve transfer movement
|
---|
111 | S TRANSFER=$O(VAFH(2,0))
|
---|
112 | S TRSNODE=VAFH(2,TRANSFER,"P")
|
---|
113 | ;
|
---|
114 | ; Retrieve admission movement from transfer
|
---|
115 | S NHCUADMT=$P(TRSNODE,"^",14)
|
---|
116 | S NHCUNODE=$G(VAFH(1,NHCUADMT,"P"))
|
---|
117 | ;
|
---|
118 | ; Retrieve ward patient admitted to prior to psuedo discharge
|
---|
119 | S DGWARD=$S(NHCUNODE]"":+$P(NHCUNODE,"^",6),1:$P(DGPMP,"^",6))
|
---|
120 | D BLDMSG^DGRUADT1(DFN,"A12",TRANSFER,$P(TRSNODE,"^"),DGWARD)
|
---|
121 | D DELASIH^DGRUASIH(DFN,+TRSNODE) ;added 11/22/00 p-328
|
---|
122 | Q
|
---|
123 | ;
|
---|
124 | MV1238(DFN) ;Discharge type Death, if patient was ASIH, send A03 to COTS
|
---|
125 | Q:'$D(DGPMAN)
|
---|
126 | N DGOMDT,DGOWARD,DGOIEN
|
---|
127 | S DGOMDT=+$G(DGPMAN) Q:DGOMDT'>0
|
---|
128 | S DGOMDT=$O(^DGPM("APRD",DFN,DGOMDT),-1) Q:DGOMDT'>0
|
---|
129 | S DGOIEN=$O(^DGPM("APRD",DFN,DGOMDT,0))
|
---|
130 | S DGOWARD=$$GET1^DIQ(405,DGOIEN,".06","I") Q:DGOWARD=""
|
---|
131 | Q:'$$CHKWARD^DGRUUTL(DGOWARD)
|
---|
132 | S DGASIH=1
|
---|
133 | D BLDMSG^DGRUADT1(DFN,"A03",DGOIEN,+DGPMA,DGOWARD)
|
---|
134 | D ADDRDT^DGRUASIH(DFN,+DGPMA) ;added 11/22/00 p-328
|
---|
135 | Q
|
---|
136 | ;
|
---|