Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: SCDXFX01

SCDXFX01.m

Go to the documentation of this file.
  1. SCDXFX01 ;ALB/JRP - AMBULATORY CARE FILE X-REFS & UTILS;30-APR-1996
  1. ;;5.3;Scheduling;**44,99**;AUG 13, 1993
  1. ;
  1. AACXMIT(IFN,SET,OLDDATE) ;Logic for AACXMIT* cross references of
  1. ; TRANSMITTED OUTPATIENT ENCOUNTER file (#409.73)
  1. ;
  1. ;Input : IFN - Pointer to entry in file
  1. ; SET - If 1, set cross reference
  1. ; If 0, kill cross reference
  1. ; If -1, check the current value of TRANSMISSION
  1. ; REQUIRED field (#.04), setting the cross reference
  1. ; if a value of 'YES' is found and killing the
  1. ; cross reference if a value of 'NO' is found
  1. ; (DEFAULT)
  1. ; OLDDATE - Previous value of DATE/TIME OF EVENT field (#.06)
  1. ; - Only valid when KILLing the x-ref is due to the
  1. ; DATE/TIME OF EVENT field (#.06) changing
  1. ;Output : None
  1. ;
  1. ;Check input
  1. Q:('$G(IFN))
  1. Q:('$D(^SD(409.73,IFN)))
  1. S:($G(SET)="") SET=-1
  1. S OLDDATE=+$G(OLDDATE)
  1. ;Declare variables
  1. N ZERO,EVENT,EVNTDATE,XMIT
  1. ;Get zero node
  1. S ZERO=$G(^SD(409.73,IFN,0))
  1. ;Get value of TRANSMISSION REQUIRED field
  1. S XMIT=+$P(ZERO,"^",4)
  1. ;Set/kill logic based on value of TRANSMISSION REQUIRED
  1. S:(SET=-1) SET=$S(XMIT=1:1,1:0)
  1. ;Get event date/time
  1. S EVNTDATE=+$P(ZERO,"^",6)
  1. ;Use old event date/time if killing due to this value changing
  1. S:(('SET)&(OLDDATE)) EVNTDATE=OLDDATE
  1. ;No event date/time - don't set x-ref
  1. Q:('EVNTDATE)
  1. ;Setting of x-ref is screened so x-ref is only set on add, edit,
  1. ; delete, and retransmit events
  1. S EVENT=+$P(ZERO,"^",5)
  1. I (SET) Q:((EVENT>3)!(EVENT<0)) S ^SD(409.73,"AACXMIT",EVNTDATE,IFN)=""
  1. ;Kill x-ref
  1. K:('SET) ^SD(409.73,"AACXMIT",EVNTDATE,IFN)
  1. Q
  1. ;
  1. AACNA(IFN,SET,OLDDATE) ;Logic for AACNA* cross references of TRANSMITTED
  1. ; OUTPATIENT ENCOUNTER file (#409.73)
  1. ;
  1. ;Input : IFN - Pointer to entry in file
  1. ; SET - If 1, set cross reference
  1. ; If 0, kill cross reference (DEFAULT)
  1. ; OLDDATE - Previous value of DATE/TIME OF XMIT TO NPCDB
  1. ; field (#11)
  1. ; - Only valid when KILLing the x-ref is due to the
  1. ; DATE/TIME OF XMIT TO NPCDB field (#11) changing
  1. ;Output : None
  1. ;
  1. ;Check input
  1. Q:('$G(IFN))
  1. Q:('$D(^SD(409.73,IFN)))
  1. S SET=+$G(SET)
  1. S OLDDATE=+$G(OLDDATE)
  1. ;Declare variables
  1. N NODE,XMITDATE
  1. ;Get node
  1. S NODE=$G(^SD(409.73,IFN,1))
  1. ;Get date/time of transmission
  1. S XMITDATE=+$P(NODE,"^",1)
  1. ;Use old date/time of transmission if this changed
  1. S:(('SET)&(OLDDATE)) XMITDATE=OLDDATE
  1. ;No transmission date/time - don't set x-ref
  1. Q:('XMITDATE)
  1. ;Set x-ref
  1. S:(SET) ^SD(409.73,"AACNOACK",XMITDATE,IFN)=""
  1. ;Kill x-ref
  1. K:('SET) ^SD(409.73,"AACNOACK",XMITDATE,IFN)
  1. Q
  1. ;
  1. AUTO() ;Auto-numbering logic for TRANSMITTED OUTPATIENT ENCOUNTER file
  1. ;
  1. ;Input : None
  1. ;Output : N - Next value to use for NUMBER field (#.01) of
  1. ; TRANSMITTED OUTPATIENT ENCOUNTER file (#409.73)
  1. ;Note : Auto-numbering logic is based on the LAST XMIT OUTPAT
  1. ; ENC NUMBER field (#701.01) of the SCHEDULING PARAMETER
  1. ; file (#404.91)
  1. ;
  1. ;Declare variables
  1. N NEXT,SUCCESS
  1. ;Lock node to prevent simultaneous use
  1. L +^SD(404.91,1,"AMB"):1800 S SUCCESS=$S(($T):1,1:0)
  1. Q:('SUCCESS) 0
  1. ;Get last value used and increment by 1
  1. S NEXT=1+$G(^SD(404.91,1,"AMB"))
  1. ;Make sure value hasn't already been used
  1. I $D(^SD(409.73,"B",NEXT)) F NEXT=NEXT:1 Q:('$D(^SD(409.73,"B",NEXT)))
  1. ;Store new value
  1. S $P(^SD(404.91,1,"AMB"),"^",1)=NEXT
  1. ;Unlock node
  1. L -^SD(404.91,1,"AMB")
  1. ;Return value to use
  1. Q NEXT