Changeset 636 for FOIAVistA/tag/r/DSS_EXTRACTS-ECX/ECXLBB.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/ECXLBB.m
r628 r636 1 ECXLBB ;DALOI/KML - DSS BLOOD BANK EXTRACT ; 10/17/07 10:33am2 ;;3.0;DSS EXTRACTS;**78,84,90,92,104 ,105**;Dec 22, 1997;Build 701 ECXLBB ;DALOI/KML - DSS BLOOD BANK EXTRACT ; 2/22/07 11:42am 2 ;;3.0;DSS EXTRACTS;**78,84,90,92,104**;Dec 22, 1997;Build 8 3 3 ;Per VHA Directive 97-033 this routine should not be modified. Medical Device # BK970021 4 4 ; access to the LAB DATA file (#63) is supported by … … 12 12 START ; Entry point from tasked job 13 13 ; begin package specific extract 14 N ECTRSP,ECADMT,ECTODT,ECENCTR,ECPAT,ECLRDFN,ECXPHY,ECXPHYPC ,ECPHYNPI14 N ECTRSP,ECADMT,ECTODT,ECENCTR,ECPAT,ECLRDFN,ECXPHY,ECXPHYPC 15 15 N ECD,ECXDFN,ECARRY,EC66,ECERR,ECTRFDT,ECTRFTM,ECX,ECINOUT,ECXINST 16 16 ;variables ECFILE,EC23,ECXYM,ECINST,ECSD,ECSD1,ECED passed in … … 37 37 .; ECARRY(7)=VOLUME TRANSFUSED, ECARRY(8)=TRANSFUSION REACTION TYPE 38 38 .; ECARRY(9)=REQUESTING PROVIDER, ECARRY(10)=REQUEST. PROV. PERSON CLASS 39 .; ECARRY(11)=UNIT MODIFIED, ECARRY(12)=UNIT MODIFICATION39 .; ECARRY(11)=UNIT MODIFIED, ECARRY(12)=UNIT MODIFICATION 40 40 .; ECARRY(13)=PRODUCTION DIVISION CODE 41 41 . S ECARRY(1)=$P(EC0,"^"),EC66=$G(^LAB(66,$P(EC0,"^",2),0)) … … 45 45 . S ECARRY(8)=$E($P($G(^LAB(65.4,+$P(EC0,"^",11),0)),"^"),1,10) 46 46 . S (ECARRY(9),ECARRY(10),ECARRY(13))="" D GETRPRV 47 . S ECARRY(1 1)=$$MODIFIED(),(ECXPHY,ECXPHYPC,ECPHYNPI)=""48 . S ECARRY(12)=$S(ECARRY(11)="Y":$$UNITMODS(),1:"")47 . S ECARRY(12)=$$UNITMOD(),ECARRY(11)=$S(ECARRY(12)'="":"Y",1:"N") 48 . S (ECXPHY,ECXPHYPC)="" 49 49 . D GETDATA 50 50 . K ECARRY 51 51 Q 52 52 ; 53 UNITMOD S() ; Get modification criteria from fields #.06 and #3 from file #6653 UNITMOD() ; Get modification criteria from fields #.06 and #3 from file #66 54 54 N MODARY,MO,EC66A,MODSTR,STR3 55 55 S MODARY("DIVIDED")="D",MODARY("POOLED")="P",MODARY("WASHED")="W" … … 58 58 S MODARY("IRRADIATED")="I",MODARY("SEPARATED")="S" 59 59 ;if modification criteria is null determine value from description 60 S MODSTR=$S($P(EC66,U,6)'="":$P(EC66,U,6),1:$$CHKMOD ^ECXLBB1($P(EC66,"^")))60 S MODSTR=$S($P(EC66,U,6)'="":$P(EC66,U,6),1:$$CHKMOD($P(EC66,"^"))) 61 61 ;get modification criteria for entries at field #3 in file #66 62 62 S MOD=0 F S MOD=$O(^LAB(66,$P(EC0,"^",2),3,MOD)) Q:'MOD D 63 63 .S EC66A=$G(^LAB(66,MOD,0)) I EC66A="" Q 64 .S STR3=$S($P(EC66A,U,6)'="":$P(EC66A,U,6),1:$$CHKMOD ^ECXLBB1($P(EC66A,"^")))64 .S STR3=$S($P(EC66A,U,6)'="":$P(EC66A,U,6),1:$$CHKMOD($P(EC66A,"^"))) 65 65 .I STR3'="",MODSTR'[STR3 S MODSTR=MODSTR_STR3 66 66 Q MODSTR 67 67 ; 68 MODIFIED() ; Was unit modified 69 ; Init variables 70 N XMATCH,UNIT,MOD,COMPID,MODNODE,MODTO 71 S (XMATCH,UNIT)=0,MOD="" 72 ; Check input 73 Q:'$G(ECLRDFN)!'$P(EC0,U,2) "N" 74 ;Find xmatch for blood component request 75 S XMATCH=$O(^LR(ECLRDFN,1.8,$P(EC0,U,2),1,XMATCH)) Q:'XMATCH "N" 76 ;Get blood inventory file (#65) pointer 77 S UNIT=$P($G(^LR(ECLRDFN,1.8,$P(EC0,"^",2),1,XMATCH,0)),U) 78 ;Look at disposition field (#4.1) in blood inventory file (#65) 79 S MOD=$P($G(^LRD(65,+XMATCH,4)),U),COMPID=$P(EC66,U,3) 80 ; Get 'the modified to' entry pointer to blood inventory file (#66) 81 I MOD="MO" S MODTO=0 F S MODTO=$O(^LRD(65,+XMATCH,9,MODTO)) Q:'MODTO D 82 .S MODNODE=$G(^LRD(65,+XMATCH,9,MODTO,0)) Q:$P(^(0),U,3)'>1 83 .Q:$P(MODNODE,U,2)'=COMPID 84 .; Set the modify to unit ien for file (#66) 85 Q $S(MOD="MO":"Y",1:"N") 86 ; 68 CHKMOD(MD) ;check if modifier is contained in string 69 N RES,MODX 70 I MD="" Q "" 71 S (RES,MODX)="" F S MODX=$O(MODARY(MODX)) Q:MODX="" D I RES'="" Q 72 .I MD[MODX S RES=MODARY(MODX) 73 Q RES 87 74 GETRPRV ; get requesting provider, requesting provider person class and 88 75 ; production division code … … 110 97 . S PERCLS=$$GET^XUA4A72(ECARRY(9),ACCDT) 111 98 . I +PERCLS>0 S ECARRY(10)=$P(PERCLS,U,7) 112 . S ECREQNPI=$$NPI^XUSNPI("Individual_ID",ECARRY(9),ACCDT)113 . S:+ECREQNPI'>0 ECREQNPI="" S ECREQNPI=$P(ECREQNPI,U)114 99 . S ECARRY(9)=2_ECARRY(9) 115 100 S DIV=$P($G(^LRO(68,+AREA,1,ACCDT,1,NUM,.4)),U) … … 155 140 I $G(ECXLOGIC)>2005 S ECXSTR=ECXSTR_U_ECXPHY_U_ECXPHYPC 156 141 I $G(ECXLOGIC)>2006 D 157 .S ECXSTR=ECXSTR_U_ECXERI_U_ECARRY(11)_U_ECARRY(12)_U_ECARRY(9)_U_ECARRY(10)_U_ECARRY(13) _U142 .S ECXSTR=ECXSTR_U_ECXERI_U_ECARRY(11)_U_ECARRY(12)_U_ECARRY(9)_U_ECARRY(10)_U_ECARRY(13) 158 143 I '$D(ECXRPT) D FILE(ECXSTR) Q 159 144 S ^TMP("ECXLBB",$J,ECXDFN,ECD)=ECXSTR ;temporary global array … … 194 179 ; ordering physician^ordering physician pc^emergency response indicator 195 180 ; (FEMA)^unit modified^unit modification^requesting provider^request. 196 ; provider person class^ordering provider npi ECPHYNPI 197 ;ECODE1- requesting provider npi ECREQNPI 181 ; provider person class 198 182 ;note: DSS product dept and DSS IP # are dependent on the release of 199 183 ; ECX*3*61 … … 201 185 S EC7=$O(^ECX(ECFILE,999999999),-1),EC7=EC7+1 202 186 S ECODE=EC7_"^"_ECODE 203 I ECXLOGIC>2007 D 204 .S ECODE=ECODE_ECPHYNPI_U 205 .S ECODE1=$G(ECREQNPI) 206 S ^ECX(ECFILE,EC7,0)=ECODE,^ECX(ECFILE,EC7,1)=$G(ECODE1),ECRN=ECRN+1 187 S ^ECX(ECFILE,EC7,0)=ECODE,ECRN=ECRN+1 207 188 S DA=EC7,DIK="^ECX("_ECFILE_"," D IX1^DIK K DIK,DA 208 189 Q
Note:
See TracChangeset
for help on using the changeset viewer.