| [613] | 1 | VAQXRF1 ;ALB/JRP - X-REF CODES FOR PDX;25-NOV-92
 | 
|---|
 | 2 |  ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993
 | 
|---|
 | 3 | AB(IFN,SET,FNUM,OLDX) ;AB* X-REF FOR ENCRYPTED FIELDS FILE (#394.73)
 | 
|---|
 | 4 |  ;INPUT  : IFN - Internal file number of record
 | 
|---|
 | 5 |  ;         SET - If 1, set cross reference
 | 
|---|
 | 6 |  ;               If 0, kill cross reference (DEFAULT)
 | 
|---|
 | 7 |  ;         FNUM - Only valid for KILLS
 | 
|---|
 | 8 |  ;                The field number that was changed
 | 
|---|
 | 9 |  ;         OLDX - Only valid for KILLS
 | 
|---|
 | 10 |  ;                The previous value
 | 
|---|
 | 11 |  ;OUTPUT : 0 - Cross reference was set/killed
 | 
|---|
 | 12 |  ;        -1 - Cross reference not set/killed
 | 
|---|
 | 13 |  ;        -2 - Bad input
 | 
|---|
 | 14 |  ;
 | 
|---|
 | 15 |  ;CHECK INPUT & RECORD EXISTANCE
 | 
|---|
 | 16 |  Q:($G(IFN)="") -2
 | 
|---|
 | 17 |  S SET=+$G(SET)
 | 
|---|
 | 18 |  Q:('$D(^VAT(394.73,IFN))) -2
 | 
|---|
 | 19 |  Q:(('SET)&('$D(FNUM))&('$D(OLDX))) -2
 | 
|---|
 | 20 |  ;DECLARE VARIABLES
 | 
|---|
 | 21 |  N FILE,FIELD,ZERO
 | 
|---|
 | 22 |  ;GET INFO FOR X-REF & QUIT IF ANY PART IS NULL
 | 
|---|
 | 23 |  S ZERO=$G(^VAT(394.73,IFN,0))
 | 
|---|
 | 24 |  Q:(ZERO="") -1
 | 
|---|
 | 25 |  S FILE=$P(ZERO,"^",2)
 | 
|---|
 | 26 |  I ('SET) S:(FNUM=.02) FILE=OLDX
 | 
|---|
 | 27 |  Q:(FILE="") -1
 | 
|---|
 | 28 |  S FIELD=$P(ZERO,"^",3)
 | 
|---|
 | 29 |  I ('SET) S:(FNUM=.03) FIELD=OLDX
 | 
|---|
 | 30 |  Q:(FIELD="") -1
 | 
|---|
 | 31 |  ;SET X-REF
 | 
|---|
 | 32 |  S:(SET) ^VAT(394.73,"A-NCRYPT",FILE,FIELD,IFN)=""
 | 
|---|
 | 33 |  ;KILL X-REF
 | 
|---|
 | 34 |  K:('SET) ^VAT(394.73,"A-NCRYPT",FILE,FIELD,IFN)
 | 
|---|
 | 35 |  Q 0
 | 
|---|
 | 36 |  ;
 | 
|---|
 | 37 | AC(IFN,SET,FNUM,OLDX) ;AC* X-REF FOR DATA FILE (#394.62)
 | 
|---|
 | 38 |  ;INPUT  : IFN - Internal file number of record
 | 
|---|
 | 39 |  ;         SET - If 1, set cross reference
 | 
|---|
 | 40 |  ;               If 0, kill cross reference (DEFAULT)
 | 
|---|
 | 41 |  ;         FNUM - Only valid for KILLS
 | 
|---|
 | 42 |  ;                The field number that was changed
 | 
|---|
 | 43 |  ;         OLDX - Only valid for KILLS
 | 
|---|
 | 44 |  ;                The previous value
 | 
|---|
 | 45 |  ;OUTPUT : 0 - Cross reference was set/killed
 | 
|---|
 | 46 |  ;        -1 - Cross reference not set/killed
 | 
|---|
 | 47 |  ;        -2 - Bad input
 | 
|---|
 | 48 |  ;
 | 
|---|
 | 49 |  ;
 | 
|---|
 | 50 |  ;CHECK INPUT & RECORD EXISTANCE
 | 
|---|
 | 51 |  Q:($G(IFN)="") -2
 | 
|---|
 | 52 |  S SET=+$G(SET)
 | 
|---|
 | 53 |  Q:('$D(^VAT(394.62,IFN))) -2
 | 
|---|
 | 54 |  Q:(('SET)&('$D(FNUM))&('$D(OLDX))) -2
 | 
|---|
 | 55 |  ;DECLARE VARIABLES
 | 
|---|
 | 56 |  N TRANS,SEG,ZERO
 | 
|---|
 | 57 |  ;GET INFO FOR X-REF & QUIT IF ANY PART IS NULL
 | 
|---|
 | 58 |  S ZERO=$G(^VAT(394.62,IFN,0))
 | 
|---|
 | 59 |  Q:(ZERO="") -1
 | 
|---|
 | 60 |  S SEG=$P(ZERO,"^",2)
 | 
|---|
 | 61 |  I ('SET) S:(FNUM=.02) SEG=OLDX
 | 
|---|
 | 62 |  Q:(SEG="") -1
 | 
|---|
 | 63 |  S TRANS=$P($G(^VAT(394.62,IFN,"TRNS")),"^",1)
 | 
|---|
 | 64 |  I ('SET) S:(FNUM=40) TRANS=OLDX
 | 
|---|
 | 65 |  Q:(TRANS="") -1
 | 
|---|
 | 66 |  ;SET X-REF
 | 
|---|
 | 67 |  S:(SET) ^VAT(394.62,"A-SEGMENT",TRANS,SEG,IFN)=""
 | 
|---|
 | 68 |  ;KILL X-REF
 | 
|---|
 | 69 |  K:('SET) ^VAT(394.62,"A-SEGMENT",TRANS,SEG,IFN)
 | 
|---|
 | 70 |  Q 0
 | 
|---|
 | 71 |  ;
 | 
|---|