Ignore:
Timestamp:
Dec 4, 2009, 8:26:01 PM (14 years ago)
Author:
George Lilly
Message:

WorldVistAEHR overlayed on FOIAVistA

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:33am
    2  ;;3.0;DSS EXTRACTS;**78,84,90,92,104,105**;Dec 22, 1997;Build 70
     1ECXLBB ;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
    33 ;Per VHA Directive 97-033 this routine should not be modified.  Medical Device # BK970021
    44 ; access to the LAB DATA file (#63) is supported by
     
    1212START ; Entry point from tasked job
    1313 ; begin package specific extract
    14  N ECTRSP,ECADMT,ECTODT,ECENCTR,ECPAT,ECLRDFN,ECXPHY,ECXPHYPC,ECPHYNPI
     14 N ECTRSP,ECADMT,ECTODT,ECENCTR,ECPAT,ECLRDFN,ECXPHY,ECXPHYPC
    1515 N ECD,ECXDFN,ECARRY,EC66,ECERR,ECTRFDT,ECTRFTM,ECX,ECINOUT,ECXINST
    1616 ;variables ECFILE,EC23,ECXYM,ECINST,ECSD,ECSD1,ECED passed in
     
    3737 .; ECARRY(7)=VOLUME TRANSFUSED, ECARRY(8)=TRANSFUSION REACTION TYPE
    3838 .; ECARRY(9)=REQUESTING PROVIDER, ECARRY(10)=REQUEST. PROV. PERSON CLASS
    39  .; ECARRY(11)=UNIT MODIFIED,ECARRY(12)=UNIT MODIFICATION
     39 .; ECARRY(11)=UNIT MODIFIED, ECARRY(12)=UNIT MODIFICATION
    4040 .; ECARRY(13)=PRODUCTION DIVISION CODE
    4141 . S ECARRY(1)=$P(EC0,"^"),EC66=$G(^LAB(66,$P(EC0,"^",2),0))
     
    4545 . S ECARRY(8)=$E($P($G(^LAB(65.4,+$P(EC0,"^",11),0)),"^"),1,10)
    4646 . S (ECARRY(9),ECARRY(10),ECARRY(13))="" D GETRPRV
    47  . S ECARRY(11)=$$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)=""
    4949 . D GETDATA
    5050 . K ECARRY
    5151 Q
    5252 ;
    53 UNITMODS() ; Get modification criteria from fields #.06 and #3 from file #66
     53UNITMOD() ; Get modification criteria from fields #.06 and #3 from file #66
    5454 N MODARY,MO,EC66A,MODSTR,STR3
    5555 S MODARY("DIVIDED")="D",MODARY("POOLED")="P",MODARY("WASHED")="W"
     
    5858 S MODARY("IRRADIATED")="I",MODARY("SEPARATED")="S"
    5959 ;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,"^")))
    6161 ;get modification criteria for entries at field #3 in file #66
    6262 S MOD=0 F  S MOD=$O(^LAB(66,$P(EC0,"^",2),3,MOD)) Q:'MOD  D
    6363 .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,"^")))
    6565 .I STR3'="",MODSTR'[STR3 S MODSTR=MODSTR_STR3
    6666 Q MODSTR
    6767 ;
    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  ;
     68CHKMOD(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
    8774GETRPRV ; get requesting provider, requesting provider person class and
    8875 ; production division code
     
    11097 . S PERCLS=$$GET^XUA4A72(ECARRY(9),ACCDT)
    11198 . 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)
    11499 . S ECARRY(9)=2_ECARRY(9)
    115100 S DIV=$P($G(^LRO(68,+AREA,1,ACCDT,1,NUM,.4)),U)
     
    155140 I $G(ECXLOGIC)>2005 S ECXSTR=ECXSTR_U_ECXPHY_U_ECXPHYPC
    156141 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)_U
     142 .S ECXSTR=ECXSTR_U_ECXERI_U_ECARRY(11)_U_ECARRY(12)_U_ECARRY(9)_U_ECARRY(10)_U_ECARRY(13)
    158143 I '$D(ECXRPT) D FILE(ECXSTR) Q
    159144 S ^TMP("ECXLBB",$J,ECXDFN,ECD)=ECXSTR  ;temporary global array
     
    194179 ; ordering physician^ordering physician pc^emergency response indicator
    195180 ; (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
    198182 ;note:  DSS product dept and DSS IP # are dependent on the release of
    199183 ; ECX*3*61
     
    201185 S EC7=$O(^ECX(ECFILE,999999999),-1),EC7=EC7+1
    202186 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
    207188 S DA=EC7,DIK="^ECX("_ECFILE_"," D IX1^DIK K DIK,DA
    208189 Q
Note: See TracChangeset for help on using the changeset viewer.