Changeset 636 for FOIAVistA/tag/r/DSS_EXTRACTS-ECX/ECXTRT.m
- Timestamp:
- Dec 4, 2009, 8:26:01 PM (14 years ago)
- Location:
- FOIAVistA/tag/r
- Files:
-
- 1 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
FOIAVistA/tag/r/DSS_EXTRACTS-ECX/ECXTRT.m
r628 r636 1 ECXTRT ;ALB/JAP,BIR/DMA,CML,PTD-Treating Specialty Change Extract ; 10/17/07 3:48pm2 ;;3.0;DSS EXTRACTS;**1,8,17,24,33,35,39,46,49,84,107 ,105**;Dec 22, 1997;Build 701 ECXTRT ;ALB/JAP,BIR/DMA,CML,PTD-Treating Specialty Change Extract ; 04/12/2007 2 ;;3.0;DSS EXTRACTS;**1,8,17,24,33,35,39,46,49,84,107**;Dec 22, 1997;Build 9 3 3 BEG ;entry point from option 4 4 D SETUP I ECFILE="" Q … … 37 37 ..D:ECXTRTL'=ECXTRTN PREVTRT^ECXTRT1(.LOC,ECD1,ECD2,ECXTRTL,.ECXLOS) 38 38 ..;whether ts has changed or not, see if primary provider has changed 39 ..;don 't bother if there's no data on current primary provider or no change in provider39 ..;dont bother if there's no data on current primary provider or no change in provider 40 40 ..D:(ECXPRVN'="")&(ECXPRVN'=ECXPRVL) PREVPRV^ECXTRT1(.LOC,ECD1,ECXPRVN,ECD2,.ECXPRVL,.ECXLOSP) 41 41 ..;whether ts has changed or not, see if attending physician has changed 42 ..;don 't bother if there's no data on current attending physician or no change in attending42 ..;dont bother if theres no data on current attending physician or no change in attending 43 43 ..D:(ECXATTN'="")&(ECXATTN'=ECXATTL) PREVATT^ECXTRT1(.LOC,ECD1,ECXATTN,ECD2,.ECXATTL,.ECXLOSA) 44 44 ..S ECXDATE=$$ECXDATE^ECXUTL(ECXMVD1,ECXYM),ECXTIME=$$ECXTIME^ECXUTL(ECXMVD1) … … 47 47 ..S ECXPDIV="" 48 48 ..I ECXLOGIC>2003 S ECXPDIV=$S(WRD="":"",1:$$NPDIV(WRD)) 49 ..S (ECXALNPI,ECXANNPI,ECXPLNPI,ECXPNNPI)="" 49 50 ..; 50 51 ..;- Observation patient indicator (YES/NO) … … 56 57 ..;- Get providers person classes 57 58 .. S ECXATLPC=$$PRVCLASS^ECXUTL($E(ECXATTL,2,999),ECXADT) 58 .. S ECATLNPI=$$NPI^XUSNPI("Individual_ID",$E(ECXATTL,2,999),ECXADT)59 .. S:+ECATLNPI'>0 ECATLNPI="" S ECATLNPI=$P(ECATLNPI,U)60 59 .. S ECXPRNPC=$$PRVCLASS^ECXUTL($E(ECXPRVN,2,999),ECXADT) 61 .. S ECPRVNPI=$$NPI^XUSNPI("Individual_ID",$E(ECXPRVN,2,999),ECXADT)62 .. S:+ECPRVNPI'>0 ECPRVNPI="" S ECPRVNPI=$P(ECPRVNPI,U)63 60 .. S ECXATNPC=$$PRVCLASS^ECXUTL($E(ECXATTN,2,999),ECXADT) 64 .. S ECATTNPI=$$NPI^XUSNPI("Individual_ID",$E(ECXATTN,2,999),ECXADT)65 .. S:+ECATTNPI'>0 ECATTNPI="" S ECATTNPI=$P(ECATTNPI,U)66 61 .. S ECXPRLPC=$$PRVCLASS^ECXUTL($E(ECXPRVL,2,999),ECXADT) 67 .. S ECPRLNPI=$$NPI^XUSNPI("Individual_ID",$E(ECXPRVL,2,999),ECXADT)68 .. S:+ECPRLNPI'>0 ECPRLNPI="" S ECPRLNPI=$P(ECPRLNPI,U)69 62 ..; 70 63 ..;- If no encounter number, don't file record 71 64 ..S ECXENC=$$ENCNUM^ECXUTL4(ECXA,ECXSSN,ECXADT,,ECXTS,ECXOBS,ECHEAD,,) 72 ..D:ECXENC'="" FILE ^ECXTRT265 ..D:ECXENC'="" FILE 73 66 ;for nhcu episodes with intervening asih stays, the los calculated here is not accurate, 74 67 ;but it never has been; this is best solution within current extract framework; 75 ;at discharge the los calculated for nhcu episodes will be the los since admission w/o asih los subtracted;68 ;at discharge the los calculated for nhcu apisodes will be the los since admission w/o asih los subtracted; 76 69 ; 77 70 ;loop through discharges to get last treating specialty … … 109 102 ..S ECXPDIV="" 110 103 ..I ECXLOGIC>2003 S ECXPDIV=$S(WRD="":"",1:$$NPDIV(WRD)) 104 ..S (ECXALNPI,ECXANNPI,ECXPLNPI,ECXPNNPI)="" 111 105 ..; 112 106 ..;- Observation patient indicator (YES/NO) … … 118 112 ..;- Get providers person classes 119 113 .. S ECXATLPC=$$PRVCLASS^ECXUTL($E(ECXATTL,2,999),ECXADT) 120 .. S ECATLNPI=$$NPI^XUSNPI("Individual_ID",$E(ECXATTL,2,999),ECXADT)121 .. S:+ECATLNPI'>0 ECATLNPI="" S ECATLNPI=$P(ECATLNPI,U)122 114 .. S ECXPRNPC=$$PRVCLASS^ECXUTL($E(ECXPRVN,2,999),ECXADT) 123 .. S ECPRVNPI=$$NPI^XUSNPI("Individual_ID",$E(ECXPRVN,2,999),ECXADT)124 .. S:+ECPRVNPI'>0 ECPRVNPI="" S ECPRVNPI=$P(ECPRVNPI,U)125 115 .. S ECXATNPC=$$PRVCLASS^ECXUTL($E(ECXATTN,2,999),ECXADT) 126 .. S ECATTNPI=$$NPI^XUSNPI("Individual_ID",$E(ECXATTN,2,999),ECXADT)127 .. S:+ECATTNPI'>0 ECATTNPI="" S ECATTNPI=$P(ECATTNPI,U)128 116 .. S ECXPRLPC=$$PRVCLASS^ECXUTL($E(ECXPRVL,2,999),ECXADT) 129 .. S ECPRLNPI=$$NPI^XUSNPI("Individual_ID",$E(ECXPRVL,2,999),ECXADT)130 .. S:+ECPRLNPI'>0 ECPRLNPI="" S ECPRLNPI=$P(ECPRLNPI,U)131 117 ..; 132 118 ..;- If no encounter number don't file record 133 119 ..S ECXENC=$$ENCNUM^ECXUTL4(ECXA,ECXSSN,ECXADT,,ECXTS,ECXOBS,ECHEAD,,) 134 ..D:ECXENC'="" FILE ^ECXTRT2120 ..D:ECXENC'="" FILE 135 121 D KPATDEM^ECXUTL2 136 122 Q … … 178 164 Q 179 165 ; 166 FILE ;file the extract record 167 ;node0 168 ;^dfn^ssn^name^i/o (ECXA)^date^product^adm date^d/c date^ 169 ;mov#^type^new ts^losing ts^losing ts los^ 170 ;losing attending^movement type^time^adm time^new provider^ 171 ;new attending^losing provider 172 ;node1 173 ;mpi^dss dept^losing attending npi^new provider npi^new attending npi^ 174 ;losing provider npi^losing attending los^losing provider los^dom^ 175 ;observ pat ind^encounter num 176 ; 177 ;convert specialties to PTF Codes for transmission 178 ; 179 N ECXDATA 180 S ECXDATA=$$TSDATA^DGACT(42.4,+ECXSPCN,.ECXDATA) 181 S ECXSPCN=$G(ECXDATA(7)) 182 S ECXDATA=$$TSDATA^DGACT(42.4,+ECXSPCL,.ECXDATA) 183 S ECXSPCL=$G(ECXDATA(7)) 184 ;done 185 S EC7=$O(^ECX(ECFILE,999999999),-1),EC7=EC7+1 186 S ECODE=EC7_U_EC23_U_U_ECXDFN_U_ECXSSN_U_ECXPNM_U_ECXA_U_ECXDATE_U_U 187 S ECODE=ECODE_ECXADMDT_U_ECXDCDT_U_ECDA_U_6_U_ECXSPCN_U_ECXSPCL_U 188 S ECODE=ECODE_ECXLOS_U_ECXATTL_U_ECMT_U_ECXTIME_U_ECXADMTM_U_ECXPRVN_U 189 S ECODE=ECODE_ECXATTN_U_ECXPRVL_U 190 S ECODE1=ECXMPI_U_ECXDSSD_U_ECXALNPI_U_ECXPNNPI_U_ECXANNPI_U_ECXPLNPI_U 191 S ECODE1=ECODE1_ECXLOSA_U_ECXLOSP_U_ECXDOM_U_ECXOBS_U_ECXENC_U_ECXPDIV 192 I ECXLOGIC>2005 S ECODE1=ECODE1_U_ECXATLPC_U_ECXPRNPC_U_ECXATNPC_U_ECXPRLPC 193 S ^ECX(ECFILE,EC7,0)=ECODE,^ECX(ECFILE,EC7,1)=ECODE1,ECRN=ECRN+1 194 S DA=EC7,DIK="^ECX("_ECFILE_"," D IX1^DIK K DIK,DA 195 I $D(ZTQUEUED),$$S^%ZTLOAD S QFLG=1 196 Q 197 ; 180 198 SETUP ;Set required input for ECXTRAC 181 199 S ECHEAD="TRT"
Note:
See TracChangeset
for help on using the changeset viewer.