1 | RMPREXT ;PHX/HNC-DATA EXTRACT FOR Nppd ;4/20/1995
|
---|
2 | ;;3.0;PROSTHETICS;**12,18,24,64,59,103,106,109,113,126,138**;Feb 09, 1996;Build 11
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ;DBIA #4599, Vendor file read 38,39,18.3,8.3
|
---|
6 | ;
|
---|
7 | ;patch 113 - roll back to 5000 lines
|
---|
8 | ; add count of records to summary message and
|
---|
9 | ; count by station number to summary total
|
---|
10 | ; add site- to ien, use ~ as data delimiter
|
---|
11 | ; add d1 and d2 flags for EXE parsing tool
|
---|
12 | ;
|
---|
13 | ;patch 126/hnc - check length, bug in GUI ignores DD field length
|
---|
14 | ;
|
---|
15 | ;patch 60/hnc - DDC interface, include DDC data fields.
|
---|
16 | ; 8/23/2006
|
---|
17 | ;
|
---|
18 | EN ;extract from 660
|
---|
19 | N %ZIS,ZTIO,ZTRTN,ZTSK,ZTDESC
|
---|
20 | S %ZIS="Q" D ^%ZIS Q:POP
|
---|
21 | I $D(IO("Q")) D QUE,HOME^%ZIS Q
|
---|
22 | PR1 ;refresh amis codes
|
---|
23 | D ^RMPREXR
|
---|
24 | EN1 ;pass dates if needed
|
---|
25 | S RMPRSEND=$P(XMRG,"*",5)
|
---|
26 | S DIC="^RMPR(660,",DR=".01:100",DIQ(0)="EN"
|
---|
27 | S RMPRB=0,RMPRCNT=0,RMPRSUB="B1 ",RMPRRECC=0,COUNT=0
|
---|
28 | K ^TMP("RMPR",$J)
|
---|
29 | F S RMPRB=$O(^RMPR(660,"B",RMPRB)) Q:(RMPRB>RMPRDT2)!(RMPRB'>0) D
|
---|
30 | .Q:RMPRB<RMPRDT1
|
---|
31 | .;date range check complete
|
---|
32 | .;pick up mult records with same date
|
---|
33 | .S RMPRA=0
|
---|
34 | .F S RMPRA=$O(^RMPR(660,"B",RMPRB,RMPRA)) Q:RMPRA'>0 D
|
---|
35 | ..S RMPRRECC=RMPRRECC+1
|
---|
36 | ..S DA=RMPRA,DIQ="RMPR"
|
---|
37 | ..S DIC="^RMPR(660,",DR=".01:100",DIQ(0)="EN"
|
---|
38 | ..D EN^DIQ1
|
---|
39 | ..;verify field length
|
---|
40 | ..;Brief Description
|
---|
41 | ..I $D(RMPR(660,RMPRA,24,"E")) D
|
---|
42 | ...I $L(RMPR(660,RMPRA,24,"E"))>60 S RMPR(660,RMPRA,24,"E")=$E(RMPR(660,RMPRA,24,"E"),1,60)
|
---|
43 | ..;Deliver To
|
---|
44 | ..I $D(RMPR(660,RMPRA,25,"E")) D
|
---|
45 | ...I $L(RMPR(660,RMPRA,25,"E"))>30 S RMPR(660,RMPRA,25,"E")=$E(RMPR(660,RMPRA,25,"E"),1,30)
|
---|
46 | ..;Remarks
|
---|
47 | ..I $D(RMPR(660,RMPRA,16,"E")) D
|
---|
48 | ...I $L(RMPR(660,RMPRA,16,"E"))>60 S RMPR(660,RMPRA,16,"E")=$E(RMPR(660,RMPRA,16,"E"),1,60)
|
---|
49 | ..D LINECK
|
---|
50 | ..;parse array
|
---|
51 | ..S RMPRC=0
|
---|
52 | ..F S RMPRC=$O(RMPR(660,RMPRC)) Q:RMPRC'>0 D TMP
|
---|
53 | ;clean up before calling mailman
|
---|
54 | K DFN,RMPRFLD,RMPRE,RMPRCNT,DFN,RMPRA,RMPRC,DIQ,DIC,DR,DA,RMPRDT1,RMPRDT2
|
---|
55 | S XMSUB="B1-F " D MAIL,EXIT
|
---|
56 | Q
|
---|
57 | LINECK ;check the message line limit (5000)
|
---|
58 | I RMPRCNT>5000 S XMSUB=RMPRSUB D MAIL K ^TMP("RMPR",$J) S RMPRCNT=0
|
---|
59 | Q
|
---|
60 | TMP ;format for mailman ^TMP(namespace,$J,counter)=record,field,value
|
---|
61 | S RMPRFLD=0
|
---|
62 | F S RMPRFLD=$O(RMPR(660,RMPRC,RMPRFLD)) Q:RMPRFLD'>0 D
|
---|
63 | .S RMPRCNT=RMPRCNT+1,RMPRE=0,DFN=0
|
---|
64 | .S RMPRE=$O(RMPR(660,RMPRC,RMPRFLD,RMPRE)) Q:RMPRE=""
|
---|
65 | .;add station number - to ien
|
---|
66 | .S IENSITE=$P($$SITE^VASITE,U,3),IENSITE=IENSITE_"-"
|
---|
67 | .;strip the ~ for TEXT file
|
---|
68 | .I RMPRFLD'=".01" S ^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~"_RMPRFLD_"~"_$TR(RMPR(660,RMPRC,RMPRFLD,RMPRE),"~","/")_U
|
---|
69 | .I RMPRFLD=".01" S ^TMP("RMPR",$J,RMPRCNT)="d1~"_IENSITE_RMPRC_"~"_RMPRFLD_"~"_$TR(RMPR(660,RMPRC,RMPRFLD,RMPRE),"~","/")_U
|
---|
70 | .;get SSN
|
---|
71 | .I RMPRFLD=".02" D
|
---|
72 | . .S DFN=$P(^RMPR(660,RMPRC,0),U,2)
|
---|
73 | . .D DEM^VADPT,ADD^VADPT,SVC^VADPT
|
---|
74 | . .S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~644~"_VA("PID")_U
|
---|
75 | . .;DOB int
|
---|
76 | . .I $G(VADM(3)) S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.3~"_$P(VADM(3),U,1)_U
|
---|
77 | . .;DOB ext
|
---|
78 | . .I $G(VADM(3)) S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.31~"_$P(VADM(3),U,2)_U
|
---|
79 | . .;Sex, int
|
---|
80 | . .I $G(VADM(5))'="" S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.5~"_$P(VADM(5),U,1)_U
|
---|
81 | . .;DOD int
|
---|
82 | . .I $G(VADM(6)) S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.6~"_$P(VADM(6),U,1)_U
|
---|
83 | . .;DOD ext
|
---|
84 | . .I $G(VADM(6)) S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.61~"_$P(VADM(6),U,2)_U
|
---|
85 | . .;patient zip
|
---|
86 | . .I $G(VAPA(6)) S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.62~"_VAPA(6)_U
|
---|
87 | . .;patient county name
|
---|
88 | . .I $G(VAPA(7)) S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.63~"_$P(VAPA(7),U,2)_U
|
---|
89 | . .;city
|
---|
90 | . .I $G(VAPA(4)) S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.66~"_VAPA(4)_U
|
---|
91 | . .;requestor service
|
---|
92 | . .;O INDICATOR
|
---|
93 | . .I $P($G(VASV(11)),U,1)>0 S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.80~"_$P(VASV(11),U,1)_U
|
---|
94 | . .I $P($G(VASV(12)),U,1)>0 S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.81~"_$P(VASV(12),U,1)_U
|
---|
95 | . .I $P($G(VASV(13)),U,1)>0 S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.82~"_$P(VASV(13),U,1)_U
|
---|
96 | . .K VASV
|
---|
97 | . .;
|
---|
98 | . .;ICN
|
---|
99 | . .S ICN=$$GETICN^MPIF001(DFN)
|
---|
100 | . .I +ICN'=-1 S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.64~"_ICN_U
|
---|
101 | . .;CMOR
|
---|
102 | . .S CMOR=$$GETVCCI^MPIF001(DFN)
|
---|
103 | . .I +CMOR'=-1 S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.65~"_CMOR_U
|
---|
104 | .;vendor info
|
---|
105 | .I RMPRFLD=7 D
|
---|
106 | ..;N DIC,DR,DA
|
---|
107 | ..S DIC="^PRC(440,"
|
---|
108 | ..S DA=$P(^RMPR(660,RMPRC,0),U,9)
|
---|
109 | ..Q:+DA'>0
|
---|
110 | ..S DR="38;39;18.3;8.3",DIQ="TAXID(",DIQ(0)="E"
|
---|
111 | ..D EN^DIQ1
|
---|
112 | ..S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.738~"_TAXID(440,DA,38,"E")_U
|
---|
113 | ..S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.739~"_TAXID(440,DA,39,"E")_U
|
---|
114 | ..S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.7183~"_TAXID(440,DA,18.3,"E")_U
|
---|
115 | ..S RMPRCNT=RMPRCNT+1,^TMP("RMPR",$J,RMPRCNT)="d2~"_IENSITE_RMPRC_"~664.783~"_TAXID(440,DA,8.3,"E")_U
|
---|
116 | ;
|
---|
117 | K VA("PID"),RMPR,VADM,VAPA,ICN,CMOR,TAXID
|
---|
118 | Q
|
---|
119 | MAIL ;pack it up and send it off
|
---|
120 | S XMTEXT="^TMP(""RMPR"",$J,"
|
---|
121 | MAILS ;entry point to send summary msg
|
---|
122 | S XMDUZ=.5
|
---|
123 | S XMY("G.PROSTHETICS@PSAS.MED.VA.GOV")=""
|
---|
124 | S XMSUB=XMSUB_" Extract From "_$P($$SITE^VASITE,U,2)
|
---|
125 | D ^XMD
|
---|
126 | ;keep track of messages sent
|
---|
127 | S RMPRM(XMZ)=XMZ_U
|
---|
128 | S COUNT=COUNT+1
|
---|
129 | Q
|
---|
130 | QUE ;TaskMan Queue
|
---|
131 | S ZTIO=ION_";"_IOST K IO("Q")
|
---|
132 | S ZTRTN="PR1^RMPREXT"
|
---|
133 | S ZTDESC="Prosthetics National Data Extract"
|
---|
134 | K ZTSK D ^%ZTLOAD I $G(ZTSK) U IO(0) W !,"<REQUEST QUEUED>"
|
---|
135 | Q
|
---|
136 | EXIT ;exit point
|
---|
137 | ;send summary msg
|
---|
138 | S RMPRM(1)="Message Numbers Created Below, Site^Total Record #:"_U_$P($$SITE^VASITE,U,3)_U_$P($$SITE^VASITE,U,2)_U_RMPRRECC_U
|
---|
139 | S XMSUB=RMPRSUB_"Summary ",XMTEXT="RMPRM("
|
---|
140 | D MAILS
|
---|
141 | K ^TMP("RMPR",$J),XMTEXT,XMDUZ,XMY,XMSUB,RMPRM
|
---|
142 | ;send message to PCM group to let them know Austin should have all mail.
|
---|
143 | S RMPRMM(1)="Site^Total Record # ^ Total Message #:"_U_$P($$SITE^VASITE,U,3)_U_$P($$SITE^VASITE,U,2)_U_RMPRRECC_U_COUNT
|
---|
144 | S XMTEXT="RMPRMM("
|
---|
145 | S XMSUB="NPPD Summary Update From "_$P($$SITE^VASITE,U,2)
|
---|
146 | S XMY("VHACOPSASPIPReport@med.va.gov")=""
|
---|
147 | S XMDUZ=.5
|
---|
148 | D ^XMD
|
---|
149 | K XMTEXT,XMDUZ,XMY,XMSUB,RMPRRECC,COUNT,RMPRMM,RMPRSEND,IENSITE
|
---|
150 | Q
|
---|
151 | ;
|
---|
152 | PR2 ;Bundle open obligations on 2319
|
---|
153 | S XMDUZ=.5
|
---|
154 | S XMY("G.RMPR SERVER")=""
|
---|
155 | S XMSUB="Prosthetics Data Extract Open Obligations"
|
---|
156 | S RMPRMSG(1)="The National Data Server has been activated today by Prosthetics HQ."
|
---|
157 | S RMPRMSG(2)="Data has been collected for all open obligations."
|
---|
158 | S RMPRMSG(3)=""
|
---|
159 | S RMPRMSG(4)="This was activated by "_$P(XMFROM,"@",1)
|
---|
160 | S RMPRMSG(5)=""
|
---|
161 | S XMTEXT="RMPRMSG("
|
---|
162 | D ^XMD
|
---|
163 | K RMPRMSG
|
---|
164 | K ^TMP("RMPR",$J)
|
---|
165 | S RMPRB=0,RMPRCNT=0,RMPRSUB="B2 "
|
---|
166 | S DIC="^RMPR(660,",DR=".01:83",DIQ(0)="EN"
|
---|
167 | F S RMPRB=$O(^RMPR(660,RMPRB)) Q:RMPRB'>0 D
|
---|
168 | .I $G(^RMPR(660,RMPRB,0))="" Q
|
---|
169 | .S RMPRA=^RMPR(660,RMPRB,0)
|
---|
170 | .;delivery date not null
|
---|
171 | .Q:$P(RMPRA,U,12)'=""
|
---|
172 | .S RMPRX=$P($G(^RMPR(660,RMPRB,1)),U,1)
|
---|
173 | .;has an IFCAP transaction number
|
---|
174 | .Q:$P(RMPRX,U,1)=""
|
---|
175 | .;refresh amis data
|
---|
176 | .D
|
---|
177 | ..N ITM,TYPE,NEW,REPAIR
|
---|
178 | ..S ITM=$P(RMPRA,U,6),TYPE=$P(RMPRA,U,4)
|
---|
179 | ..Q:ITM=""
|
---|
180 | ..Q:TYPE=""
|
---|
181 | ..S NEW=$P($G(^RMPR(661,ITM,0)),U,3)
|
---|
182 | ..S REPAIR=$P($G(^RMPR(661,ITM,0)),U,4)
|
---|
183 | ..I TYPE="X" S $P(^RMPR(660,RMPRB,"AM"),U,5)=REPAIR,$P(^("AM"),U,9)="" Q
|
---|
184 | ..S $P(^RMPR(660,RMPRB,"AM"),U,9)=NEW,$P(^("AM"),U,5)=""
|
---|
185 | .;get data
|
---|
186 | .S DA=RMPRB,DIQ="RMPR" D EN^DIQ1,LINECK
|
---|
187 | .S RMPRC=0
|
---|
188 | .F S RMPRC=$O(RMPR(660,RMPRC)) Q:RMPRC'>0 D LINECK,TMP
|
---|
189 | K DFN,RMPRFLD,RMPRC,RMPRA,RMPRB,RMPRX,RMPRCNT,RMPRE,DR,DIC,DIQ,DA
|
---|
190 | S XMSUB="B2-F " D MAIL,EXIT
|
---|
191 | D ^%ZISC
|
---|
192 | Q
|
---|
193 | ;END
|
---|