VAFCDD01 ;ALB/JRP,LTL-DATA DICTIONARY UTILITIES ;05-SEP-1996
;;5.3;Registration;**91,149,1**;Jun 06, 1996
AVAFC(DFN) ;AVAFC* cross reference for PATIENT file (#2)
;
;Input : IFN - Pointer to entry in PATIENT file (#2)
;Output : None
; VAFCFLG will be set to 1 if the cross reference is
; not executed because the change is being made from
; within the Registration process. This notifies
; Registration that a change was made and that this
; cross reference should be executed if the Registration
; process is aborted.
;
;Notes : The AVAFC* cross references are used to remember that
; changes were made to the PATIENT file (#2) outside of
; the Registration process. Execution of this cross
; reference will create an entry in the ADT/HL7 PIVOT
; file (#391.71) and mark it as requiring transmission
; of an HL7 ADT-A08 message.
;
; : Execution of this cross reference can be prevented by
; setting the local variables: VAFCA08 equal to 1
; VAFHCA08 equal to 1
;
; : If only one of the CA08 variables is set to 1 an entry
; will be made in the pivot file (#391.71) but the
; corresponding transmission flag will not be set. In this
; case setting VAFCA08=1 will prevent the REQUIRES TRANSMISSION
; flag from being set and setting VAFHCA08=1 will prevent the
; TRANSMITTED-REQUIRES TRANSMISSION flag from being set.
; This allows control for sending HL7 and/or HL7v2.3
;
;Check input
I +$G(DFN),$D(^DPT(DFN,0))
E Q
;quit if re-indexing
Q:$D(DIU(0))
;
N VARPTR,PIVOTNUM ;Declare variables
;
DO K VAFCF ; do HL7 V2.3 MESSAGING
.;CHECK TURNOFF FLAG
.Q:$D(VAFCA08)
.;IF SEND HL7 V2.3 MESSAGES IN MAS PARAMETER FILE IS SET
.;TO SEND/SUSPEND THEN DO IT, ELSE QUIT
.I '$P($$SEND^VAFHUTL(),"^",2) Q
.;IF in Registration option, save fields edited
.I $$REG() D Q
. . Q:$G(VAFCF)=""
. . S VAFCFLDS(VAFCF)=""
.;IF NOT IN REGISTRATION DO THIS
.D PVT4A08(DFN)
.I PIVOTNUM<0 Q
.; set need to transmit flag
.D XMITFLAG(0,PIVOTNUM)
;
DO ; do HL7 V2.2 MESSAGING
.Q:$G(VAFHCA08)
.Q:$G(VAFCFLG)
.I $$EN^VAFHREG() S VAFCFLG=1 Q
.I '$$SEND^VAFHUTL() Q
.I +$G(PIVOTNUM)<0 Q ; its already been called and failed quit
.I '$G(PIVOTNUM) D PVT4A08(DFN) ; set ac xref and pivot
.I PIVOTNUM<0 Q
.; set requires transmission-Yes flag
.D SETTFLAG(0,PIVOTNUM)
.;done
QUIT
;
PVT4A08(DFN) ;Create entry in ADT/HL7 PIVOT file for an ADT-A08 event
; and mark it for transmission
;
;Input : IFN - Pointer to entry in PATIENT file (#2)
;Output : None
;Notes : There are no checks to determine if the entry should be
; created (other than input of a valid DFN)
;
;Check input
I +$G(DFN),$D(^DPT(DFN,0))
E QUIT
;Declare variables don't new for call from top
;N VARPTR,PIVOTNUM
;Set variable pointer used by ADT/HL7 PIVOT file
S VARPTR=DFN_";DPT("
;Create entry
S PIVOTNUM=+$$PIVNW^VAFHPIVT(DFN,$P(DT,"."),4,VARPTR)
Q:(PIVOTNUM<0)
;EDIT DUZ2 FIELD IN PIVOT FILE - ADDED FOR AGMPI TPF 7/9/2010
S $P(^VAT(391.71,PIVOTNUM,9999999),U)=DUZ(2) ;NOTE: COULD NOT USE A FM CALL TO ADD THIS. IT CAUSED A MESS ON RETURN
;END NEW
;Mark entry as requires transmission
I $P($$SEND^VAFHUTL(),"^",2) D XMITFLAG(0,PIVOTNUM)
;Mark entry as transmitted field YES
I $G(VAFCFLG),$$SEND^VAFHUTL() D SETTFLAG(0,PIVOTNUM)
;Done
Q
;
PROCESS() ;
;This call simply processes the array elements in the VAFCFLDS
;variable into a string
Q:'$D(VAFCFLDS) -1
N INDEX,RETURN S INDEX="",RETURN=""
F S INDEX=$O(VAFCFLDS(INDEX)) Q:INDEX="" D
. S RETURN=RETURN_INDEX
Q:$G(RETURN)="" -1
Q RETURN
;
REGEDIT(PIVOTNUM,FIELDS) ;
;This call is used to generate an HL7 VERSION 2.3 A04 or A08 message
;from the pivot file the A04 is generated from DGREG00 when a
;Registration is known to have been completed. The A08 message
;is generated from DGREG0 when the Registration option was used
;to edit some fields, but the Registration was never completed.
;FIELDS variable contains the fields edited during the session.
S DIE="391.71",DA=PIVOTNUM
S DR="2.1///^S X=FIELDS"
D ^DIE
K DIE,DA,DR
Q
TRANSMIT(PIVOTNUM) ;
;This call is used to simply set the 'Requires Transmission'
;flag in the pivot file
S DIE="391.71",DA=PIVOTNUM
S DR=".08///^S X=1"
D ^DIE
K DIE,DA,DR
Q
;
MESSAGE(PIVOTPTR,NUMBER) ;
;This tag stuffs the message id from hl7 into pivot file
S DIE="391.71",DA=PIVOTPTR
S DR="1.1///^S X=NUMBER"
D ^DIE
K DIE,DA,DR
Q
;
REG() ;
;this tag looks at what option the user is in at the time
;
I $P($G(XQY0),"^")="DG REGISTER PATIENT" Q 1
I $P($G(XQY0),"^")="DGRPT 10-10T REGISTRATION" Q 1
Q 0
;
HL7A08 ;
I $D(VAFHMRG) D KILL^VAFHUTL2(DFN,VAFHBEF)
;Registration process was aborted and changes were made
;to key demographic data. Create an HL7 V2.3 entry in
;the ADT/HL PIVOT file so that demographic changes will be
;broadcast. VAFCFLDS is set in routine VAFCDD01. It contains the
;fields that were edited.
I $D(VAFCFLDS) D
. N PIVOTNUM,IEN,PTR
. S PTR=DFN_";DPT("
. S PIVOTNUM=+$$PIVNW^VAFHPIVT(DFN,DT,4,PTR)
. Q:PIVOTNUM'>0
. S IEN=$O(^VAT(391.71,"D",PIVOTNUM,""))
. Q:IEN'>0
. S VAFCFLDS=$$PROCESS^VAFCDD01()
. I VAFCFLDS'=-1 D
. . D REGEDIT^VAFCDD01(IEN,VAFCFLDS)
. . D TRANSMIT^VAFCDD01(IEN)
K VAFCFLDS
Q
;
SECA08(DFN) ;PUT ENTRY IN PIVOT FILE WHEN USER FLAGS A PT AS SENSITIVE IN
;FILE 38.1 THIS IS TRIGGERED OUT OF ROUTINE DGSEC1
N PIVOTNUM,IEN,PTR
S PTR=DFN_";DPT("
S PIVOTNUM=+$$PIVNW^VAFHPIVT(DFN,DT,4,PTR)
Q:PIVOTNUM'>0
S IEN=$O(^VAT(391.71,"D",PIVOTNUM,""))
Q:IEN'>0
;SET EVENT CODE FIELD TO 97 INDICATING A SENSITIVITY UPDATE
S DIE="391.71",DA=IEN
S DR=".1///^S X=97"
D ^DIE
K DIE,DA,DR
D TRANSMIT^VAFCDD01(IEN)
Q
;
XMITFLAG(PIVOTPTR,PIVOTNUM,TURNOFF) ;Turn transmission flag for entry
; in ADT/HL7 PIVOT file on/off
;
;Input : PIVOTPTR - Pointer to entry in ADT/HL7 PIVOT file (#391.71)
; - Use this parameter if the entry number is known
; - Not required if using PIVOTNUM parameter
; - Use of this parameter takes precedence over use
; the PIVOTNUM parameter
; PIVOTNUM - PIVOT NUMBER value (field #.02) for entry
; in ADT/HL7 PIVOT file (#391.71)
; - Use this parameter if the pivot number is known
; - Not required if using PIVOTPTR parameter
; TURNOFF - Denotes if REQUIRES TRANSMISSION field (#.08) should
; be turned on (set to 'YES') or off (set to 'NO')
; 1 = Turns transmission off
; 0 = Turns transmission on (default)
;Output : None
;
;Check input
S PIVOTPTR=+$G(PIVOTPTR)
S PIVOTNUM=+$G(PIVOTNUM)
Q:(('PIVOTPTR)&('PIVOTNUM))
S TURNOFF=+$G(TURNOFF)
;Declare variables
N VALUE,NODE,XREFNUM,DA,X
;Passed pointer - validate
I (PIVOTPTR) Q:('$D(^VAT(391.71,PIVOTPTR,0)))
;Passed pivot number - convert to pointer
I ('PIVOTPTR) S PIVOTPTR=+$O(^VAT(391.71,"D",PIVOTNUM,0)) Q:('PIVOTPTR)
;Set FileMan variables
S DA=PIVOTPTR
S X='TURNOFF
;If already transmitted, empty field(s) edited, can't do 8th piece ""
;I $G(VAFCF),'$P($G(^VAT(391.71,DA,0)),U,8),$G(^VAT(391.71,DA,2)) S $P(^VAT(391.71,DA,2),U)=""
;Hard set field
S $P(^VAT(391.71,DA,0),"^",8)=X
;Hard set fields edited
S:$G(VAFCF)&($P($G(^VAT(391.71,DA,2)),U)'[$G(VAFCF)) $P(^VAT(391.71,DA,2),U)=$P($G(^VAT(391.71,DA,2)),U)_$G(VAFCF)
;Execute cross references
S XREFNUM=0
F S XREFNUM=+$O(^DD(391.71,.08,1,XREFNUM)) Q:('XREFNUM) D
.;Execute kill logic
.S NODE=$G(^DD(391.71,.08,1,XREFNUM,2))
.I (NODE'="") X NODE
.;Execute set logic
.S NODE=$G(^DD(391.71,.08,1,XREFNUM,1))
.I (NODE'="") X NODE
Q
;
SETTFLAG(PIVOTPTR,PIVOTNUM,TURNOFF) ;Turn transmission flag for entry
; in ADT/HL7 PIVOT file on/off
;
;Input : PIVOTPTR - Pointer to entry in ADT/HL7 PIVOT file (#391.71)
; - Use this parameter if the entry number is known
; - Not required if using PIVOTNUM parameter
; - Use of this parameter takes precedence over use
; the PIVOTNUM parameter
; PIVOTNUM - PIVOT NUMBER value (field #.02) for entry
; in ADT/HL7 PIVOT file (#391.71)
; - Use this parameter if the pivot number is known
; - Not required if using PIVOTPTR parameter
; TURNOFF - Denotes if TRANSMITTED field (#.06) should
; be turned on (set to 'YES') or off (set to 'NO')
; 1 = Turns transmission off
; 0 = Turns transmission on (default)
;Output : None
;
;Check input
S PIVOTPTR=+$G(PIVOTPTR)
S PIVOTNUM=+$G(PIVOTNUM)
Q:(('PIVOTPTR)&('PIVOTNUM))
S TURNOFF=+$G(TURNOFF)
;Declare variables
N VALUE,NODE,XREFNUM,DA,X
;Passed pointer - validate
I (PIVOTPTR) Q:('$D(^VAT(391.71,PIVOTPTR,0)))
;Passed pivot number - convert to pointer
I ('PIVOTPTR) S PIVOTPTR=+$O(^VAT(391.71,"D",PIVOTNUM,0)) Q:('PIVOTPTR)
;Set FileMan variables
S DA=PIVOTPTR
S X='TURNOFF
;Hard set field
S $P(^VAT(391.71,DA,0),"^",6)=X
;Execute cross references
S XREFNUM=0
F S XREFNUM=+$O(^DD(391.71,.06,1,XREFNUM)) Q:('XREFNUM) D
.;Execute kill logic
.S NODE=$G(^DD(391.71,.06,1,XREFNUM,2))
.I (NODE'="") X NODE
.;Execute set logic
.S NODE=$G(^DD(391.71,.06,1,XREFNUM,1))
.I (NODE'="") X NODE
Q
VAFCDD01 ;ALB/JRP,LTL-DATA DICTIONARY UTILITIES ;05-SEP-1996
+1 ;;5.3;Registration;**91,149,1**;Jun 06, 1996
AVAFC(DFN) ;AVAFC* cross reference for PATIENT file (#2)
+1 ;
+2 ;Input : IFN - Pointer to entry in PATIENT file (#2)
+3 ;Output : None
+4 ; VAFCFLG will be set to 1 if the cross reference is
+5 ; not executed because the change is being made from
+6 ; within the Registration process. This notifies
+7 ; Registration that a change was made and that this
+8 ; cross reference should be executed if the Registration
+9 ; process is aborted.
+10 ;
+11 ;Notes : The AVAFC* cross references are used to remember that
+12 ; changes were made to the PATIENT file (#2) outside of
+13 ; the Registration process. Execution of this cross
+14 ; reference will create an entry in the ADT/HL7 PIVOT
+15 ; file (#391.71) and mark it as requiring transmission
+16 ; of an HL7 ADT-A08 message.
+17 ;
+18 ; : Execution of this cross reference can be prevented by
+19 ; setting the local variables: VAFCA08 equal to 1
+20 ; VAFHCA08 equal to 1
+21 ;
+22 ; : If only one of the CA08 variables is set to 1 an entry
+23 ; will be made in the pivot file (#391.71) but the
+24 ; corresponding transmission flag will not be set. In this
+25 ; case setting VAFCA08=1 will prevent the REQUIRES TRANSMISSION
+26 ; flag from being set and setting VAFHCA08=1 will prevent the
+27 ; TRANSMITTED-REQUIRES TRANSMISSION flag from being set.
+28 ; This allows control for sending HL7 and/or HL7v2.3
+29 ;
+30 ;Check input
+31 IF +$GET(DFN)
IF $DATA(^DPT(DFN,0))
+32 IF '$TEST
QUIT
+33 ;quit if re-indexing
+34 IF $DATA(DIU(0))
QUIT
+35 ;
+36 ;Declare variables
NEW VARPTR,PIVOTNUM
+37 ;
+38 ; do HL7 V2.3 MESSAGING
Begin DoDot:1
+39 ;CHECK TURNOFF FLAG
+40 IF $DATA(VAFCA08)
QUIT
+41 ;IF SEND HL7 V2.3 MESSAGES IN MAS PARAMETER FILE IS SET
+42 ;TO SEND/SUSPEND THEN DO IT, ELSE QUIT
+43 IF '$PIECE($$SEND^VAFHUTL(),"^",2)
QUIT
+44 ;IF in Registration option, save fields edited
+45 IF $$REG()
Begin DoDot:2
+46 IF $GET(VAFCF)=""
QUIT
+47 SET VAFCFLDS(VAFCF)=""
End DoDot:2
QUIT
+48 ;IF NOT IN REGISTRATION DO THIS
+49 DO PVT4A08(DFN)
+50 IF PIVOTNUM<0
QUIT
+51 ; set need to transmit flag
+52 DO XMITFLAG(0,PIVOTNUM)
End DoDot:1
KILL VAFCF
+53 ;
+54 ; do HL7 V2.2 MESSAGING
Begin DoDot:1
+55 IF $GET(VAFHCA08)
QUIT
+56 IF $GET(VAFCFLG)
QUIT
+57 IF $$EN^VAFHREG()
SET VAFCFLG=1
QUIT
+58 IF '$$SEND^VAFHUTL()
QUIT
+59 ; its already been called and failed quit
IF +$GET(PIVOTNUM)<0
QUIT
+60 ; set ac xref and pivot
IF '$GET(PIVOTNUM)
DO PVT4A08(DFN)
+61 IF PIVOTNUM<0
QUIT
+62 ; set requires transmission-Yes flag
+63 DO SETTFLAG(0,PIVOTNUM)
+64 ;done
End DoDot:1
+65 QUIT
+66 ;
PVT4A08(DFN) ;Create entry in ADT/HL7 PIVOT file for an ADT-A08 event
+1 ; and mark it for transmission
+2 ;
+3 ;Input : IFN - Pointer to entry in PATIENT file (#2)
+4 ;Output : None
+5 ;Notes : There are no checks to determine if the entry should be
+6 ; created (other than input of a valid DFN)
+7 ;
+8 ;Check input
+9 IF +$GET(DFN)
IF $DATA(^DPT(DFN,0))
+10 IF '$TEST
QUIT
+11 ;Declare variables don't new for call from top
+12 ;N VARPTR,PIVOTNUM
+13 ;Set variable pointer used by ADT/HL7 PIVOT file
+14 SET VARPTR=DFN_";DPT("
+15 ;Create entry
+16 SET PIVOTNUM=+$$PIVNW^VAFHPIVT(DFN,$PIECE(DT,"."),4,VARPTR)
+17 IF (PIVOTNUM<0)
QUIT
+18 ;EDIT DUZ2 FIELD IN PIVOT FILE - ADDED FOR AGMPI TPF 7/9/2010
+19 ;NOTE: COULD NOT USE A FM CALL TO ADD THIS. IT CAUSED A MESS ON RETURN
SET $PIECE(^VAT(391.71,PIVOTNUM,9999999),U)=DUZ(2)
+20 ;END NEW
+21 ;Mark entry as requires transmission
+22 IF $PIECE($$SEND^VAFHUTL(),"^",2)
DO XMITFLAG(0,PIVOTNUM)
+23 ;Mark entry as transmitted field YES
+24 IF $GET(VAFCFLG)
IF $$SEND^VAFHUTL()
DO SETTFLAG(0,PIVOTNUM)
+25 ;Done
+26 QUIT
+27 ;
PROCESS() ;
+1 ;This call simply processes the array elements in the VAFCFLDS
+2 ;variable into a string
+3 IF '$DATA(VAFCFLDS)
QUIT -1
+4 NEW INDEX,RETURN
SET INDEX=""
SET RETURN=""
+5 FOR
SET INDEX=$ORDER(VAFCFLDS(INDEX))
IF INDEX=""
QUIT
Begin DoDot:1
+6 SET RETURN=RETURN_INDEX
End DoDot:1
+7 IF $GET(RETURN)=""
QUIT -1
+8 QUIT RETURN
+9 ;
REGEDIT(PIVOTNUM,FIELDS) ;
+1 ;This call is used to generate an HL7 VERSION 2.3 A04 or A08 message
+2 ;from the pivot file the A04 is generated from DGREG00 when a
+3 ;Registration is known to have been completed. The A08 message
+4 ;is generated from DGREG0 when the Registration option was used
+5 ;to edit some fields, but the Registration was never completed.
+6 ;FIELDS variable contains the fields edited during the session.
+7 SET DIE="391.71"
SET DA=PIVOTNUM
+8 SET DR="2.1///^S X=FIELDS"
+9 DO ^DIE
+10 KILL DIE,DA,DR
+11 QUIT
TRANSMIT(PIVOTNUM) ;
+1 ;This call is used to simply set the 'Requires Transmission'
+2 ;flag in the pivot file
+3 SET DIE="391.71"
SET DA=PIVOTNUM
+4 SET DR=".08///^S X=1"
+5 DO ^DIE
+6 KILL DIE,DA,DR
+7 QUIT
+8 ;
MESSAGE(PIVOTPTR,NUMBER) ;
+1 ;This tag stuffs the message id from hl7 into pivot file
+2 SET DIE="391.71"
SET DA=PIVOTPTR
+3 SET DR="1.1///^S X=NUMBER"
+4 DO ^DIE
+5 KILL DIE,DA,DR
+6 QUIT
+7 ;
REG() ;
+1 ;this tag looks at what option the user is in at the time
+2 ;
+3 IF $PIECE($GET(XQY0),"^")="DG REGISTER PATIENT"
QUIT 1
+4 IF $PIECE($GET(XQY0),"^")="DGRPT 10-10T REGISTRATION"
QUIT 1
+5 QUIT 0
+6 ;
HL7A08 ;
+1 IF $DATA(VAFHMRG)
DO KILL^VAFHUTL2(DFN,VAFHBEF)
+2 ;Registration process was aborted and changes were made
+3 ;to key demographic data. Create an HL7 V2.3 entry in
+4 ;the ADT/HL PIVOT file so that demographic changes will be
+5 ;broadcast. VAFCFLDS is set in routine VAFCDD01. It contains the
+6 ;fields that were edited.
+7 IF $DATA(VAFCFLDS)
Begin DoDot:1
+8 NEW PIVOTNUM,IEN,PTR
+9 SET PTR=DFN_";DPT("
+10 SET PIVOTNUM=+$$PIVNW^VAFHPIVT(DFN,DT,4,PTR)
+11 IF PIVOTNUM'>0
QUIT
+12 SET IEN=$ORDER(^VAT(391.71,"D",PIVOTNUM,""))
+13 IF IEN'>0
QUIT
+14 SET VAFCFLDS=$$PROCESS^VAFCDD01()
+15 IF VAFCFLDS'=-1
Begin DoDot:2
+16 DO REGEDIT^VAFCDD01(IEN,VAFCFLDS)
+17 DO TRANSMIT^VAFCDD01(IEN)
End DoDot:2
End DoDot:1
+18 KILL VAFCFLDS
+19 QUIT
+20 ;
SECA08(DFN) ;PUT ENTRY IN PIVOT FILE WHEN USER FLAGS A PT AS SENSITIVE IN
+1 ;FILE 38.1 THIS IS TRIGGERED OUT OF ROUTINE DGSEC1
+2 NEW PIVOTNUM,IEN,PTR
+3 SET PTR=DFN_";DPT("
+4 SET PIVOTNUM=+$$PIVNW^VAFHPIVT(DFN,DT,4,PTR)
+5 IF PIVOTNUM'>0
QUIT
+6 SET IEN=$ORDER(^VAT(391.71,"D",PIVOTNUM,""))
+7 IF IEN'>0
QUIT
+8 ;SET EVENT CODE FIELD TO 97 INDICATING A SENSITIVITY UPDATE
+9 SET DIE="391.71"
SET DA=IEN
+10 SET DR=".1///^S X=97"
+11 DO ^DIE
+12 KILL DIE,DA,DR
+13 DO TRANSMIT^VAFCDD01(IEN)
+14 QUIT
+15 ;
XMITFLAG(PIVOTPTR,PIVOTNUM,TURNOFF) ;Turn transmission flag for entry
+1 ; in ADT/HL7 PIVOT file on/off
+2 ;
+3 ;Input : PIVOTPTR - Pointer to entry in ADT/HL7 PIVOT file (#391.71)
+4 ; - Use this parameter if the entry number is known
+5 ; - Not required if using PIVOTNUM parameter
+6 ; - Use of this parameter takes precedence over use
+7 ; the PIVOTNUM parameter
+8 ; PIVOTNUM - PIVOT NUMBER value (field #.02) for entry
+9 ; in ADT/HL7 PIVOT file (#391.71)
+10 ; - Use this parameter if the pivot number is known
+11 ; - Not required if using PIVOTPTR parameter
+12 ; TURNOFF - Denotes if REQUIRES TRANSMISSION field (#.08) should
+13 ; be turned on (set to 'YES') or off (set to 'NO')
+14 ; 1 = Turns transmission off
+15 ; 0 = Turns transmission on (default)
+16 ;Output : None
+17 ;
+18 ;Check input
+19 SET PIVOTPTR=+$GET(PIVOTPTR)
+20 SET PIVOTNUM=+$GET(PIVOTNUM)
+21 IF (('PIVOTPTR)&('PIVOTNUM))
QUIT
+22 SET TURNOFF=+$GET(TURNOFF)
+23 ;Declare variables
+24 NEW VALUE,NODE,XREFNUM,DA,X
+25 ;Passed pointer - validate
+26 IF (PIVOTPTR)
IF ('$DATA(^VAT(391.71,PIVOTPTR,0)))
QUIT
+27 ;Passed pivot number - convert to pointer
+28 IF ('PIVOTPTR)
SET PIVOTPTR=+$ORDER(^VAT(391.71,"D",PIVOTNUM,0))
IF ('PIVOTPTR)
QUIT
+29 ;Set FileMan variables
+30 SET DA=PIVOTPTR
+31 SET X='TURNOFF
+32 ;If already transmitted, empty field(s) edited, can't do 8th piece ""
+33 ;I $G(VAFCF),'$P($G(^VAT(391.71,DA,0)),U,8),$G(^VAT(391.71,DA,2)) S $P(^VAT(391.71,DA,2),U)=""
+34 ;Hard set field
+35 SET $PIECE(^VAT(391.71,DA,0),"^",8)=X
+36 ;Hard set fields edited
+37 IF $GET(VAFCF)&($PIECE($GET(^VAT(391.71,DA,2)),U)'[$GET(VAFCF))
SET $PIECE(^VAT(391.71,DA,2),U)=$PIECE($GET(^VAT(391.71,DA,2)),U)_$GET(VAFCF)
+38 ;Execute cross references
+39 SET XREFNUM=0
+40 FOR
SET XREFNUM=+$ORDER(^DD(391.71,.08,1,XREFNUM))
IF ('XREFNUM)
QUIT
Begin DoDot:1
+41 ;Execute kill logic
+42 SET NODE=$GET(^DD(391.71,.08,1,XREFNUM,2))
+43 IF (NODE'="")
XECUTE NODE
+44 ;Execute set logic
+45 SET NODE=$GET(^DD(391.71,.08,1,XREFNUM,1))
+46 IF (NODE'="")
XECUTE NODE
End DoDot:1
+47 QUIT
+48 ;
SETTFLAG(PIVOTPTR,PIVOTNUM,TURNOFF) ;Turn transmission flag for entry
+1 ; in ADT/HL7 PIVOT file on/off
+2 ;
+3 ;Input : PIVOTPTR - Pointer to entry in ADT/HL7 PIVOT file (#391.71)
+4 ; - Use this parameter if the entry number is known
+5 ; - Not required if using PIVOTNUM parameter
+6 ; - Use of this parameter takes precedence over use
+7 ; the PIVOTNUM parameter
+8 ; PIVOTNUM - PIVOT NUMBER value (field #.02) for entry
+9 ; in ADT/HL7 PIVOT file (#391.71)
+10 ; - Use this parameter if the pivot number is known
+11 ; - Not required if using PIVOTPTR parameter
+12 ; TURNOFF - Denotes if TRANSMITTED field (#.06) should
+13 ; be turned on (set to 'YES') or off (set to 'NO')
+14 ; 1 = Turns transmission off
+15 ; 0 = Turns transmission on (default)
+16 ;Output : None
+17 ;
+18 ;Check input
+19 SET PIVOTPTR=+$GET(PIVOTPTR)
+20 SET PIVOTNUM=+$GET(PIVOTNUM)
+21 IF (('PIVOTPTR)&('PIVOTNUM))
QUIT
+22 SET TURNOFF=+$GET(TURNOFF)
+23 ;Declare variables
+24 NEW VALUE,NODE,XREFNUM,DA,X
+25 ;Passed pointer - validate
+26 IF (PIVOTPTR)
IF ('$DATA(^VAT(391.71,PIVOTPTR,0)))
QUIT
+27 ;Passed pivot number - convert to pointer
+28 IF ('PIVOTPTR)
SET PIVOTPTR=+$ORDER(^VAT(391.71,"D",PIVOTNUM,0))
IF ('PIVOTPTR)
QUIT
+29 ;Set FileMan variables
+30 SET DA=PIVOTPTR
+31 SET X='TURNOFF
+32 ;Hard set field
+33 SET $PIECE(^VAT(391.71,DA,0),"^",6)=X
+34 ;Execute cross references
+35 SET XREFNUM=0
+36 FOR
SET XREFNUM=+$ORDER(^DD(391.71,.06,1,XREFNUM))
IF ('XREFNUM)
QUIT
Begin DoDot:1
+37 ;Execute kill logic
+38 SET NODE=$GET(^DD(391.71,.06,1,XREFNUM,2))
+39 IF (NODE'="")
XECUTE NODE
+40 ;Execute set logic
+41 SET NODE=$GET(^DD(391.71,.06,1,XREFNUM,1))
+42 IF (NODE'="")
XECUTE NODE
End DoDot:1
+43 QUIT