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

SCDXFU03.m

Go to the documentation of this file.
  1. SCDXFU03 ;ALB/JRP - AMBULATORY CARE FILE UTILITIES;01-JUL-1996
  1. ;;5.3;Scheduling;**44,110,121,126,128,1015**;AUG 13, 1993;Build 21
  1. ;
  1. DELXMIT(PTR,PTR2) ;Delete entry in TRANSMITTED OUTPATIENT ENCOUNTER
  1. ; file (#409.73)
  1. ;
  1. ;Input : PTR - Pointer to entry in one of the following files
  1. ; * TRANSMITTED OUTPATIENT ENCOUNTER file (#409.73)
  1. ; * OUTPATIENT ENCOUNTER file (#409.68)
  1. ; * DELETED OUTPATIENT ENCOUNTER file (#409.74)
  1. ; PTR2 - Denotes which file PTR points to
  1. ; 0 = TRANSMITTED OUTPATIENT ENCOUNTER file (Default)
  1. ; 1 = OUTPATIENT ENCOUNTER file
  1. ; 2 = DELETED OUTPATIENT ENCOUNTER file
  1. ;Output : 0 - Success
  1. ; -1 - Unable to delete entry
  1. ;Note : Success (0) is returned when a valid pointer to the
  1. ; specified file is not passed or an entry in the
  1. ; TRANSMITTED OUTPATIENT ENCOUNTER file can not be found
  1. ; (Deleting an entry that doesn't exist is successful)
  1. ; : If the TRANSMITTED OUTPATIENT ENCOUNTER points to an entry
  1. ; in the DELETED OUTPATIENT ENCOUNTER file, the DELETED
  1. ; OUTPATIENT ENCOUNTER will also be deleted
  1. ;
  1. ;Check input
  1. S PTR=+$G(PTR)
  1. S PTR2=+$G(PTR2)
  1. S:((PTR2<0)!(PTR2>2)) PTR2=0
  1. ;Declare variables
  1. N DIK,DA,X,Y,DIC,XMITPTR,DELPTR
  1. ;Get pointer to TRANSMITTED OUTPATIENT ENCOUNTER file
  1. S XMITPTR=PTR
  1. S:(PTR2=1) XMITPTR=+$O(^SD(409.73,"AENC",PTR,0))
  1. S:(PTR2=2) XMITPTR=+$O(^SD(409.73,"ADEL",PTR,0))
  1. ;Entry in TRANSMITTED OUTPATIENT ENCOUNTER file doesn't exist - success
  1. Q:('$D(^SD(409.73,XMITPTR,0))) 0
  1. ;Delete all entries in TRANSMITTED OUTPATIENT ENCOUNTER ERROR file
  1. ; (#409.75) that refer to entry being deleted
  1. D DELAERR^SCDXFU02(XMITPTR)
  1. ;Delete all entries in ACRP Transmission History file (#409.77)
  1. D DELAHIST^SCDXFU10(XMITPTR)
  1. ;Delete entry in DELETED OUTPATIENT ENCOUNTER file (#409.74)
  1. S DELPTR=+$$XMIT4DEL^SCDXFU11(XMITPTR)
  1. S:(DELPTR>0) X=$$DELDEL^SCDXFU02(DELPTR)
  1. ;Delete entry
  1. S DIK="^SD(409.73,"
  1. S DA=XMITPTR
  1. D ^DIK
  1. ;Done
  1. Q 0
  1. ;
  1. XMITDATA(XMITPTR,XMITDATE,MID,BID) ;Store transmission data for entry in
  1. ; TRANSMITTED OUTPATIENT ENCOUNTER file (#409.73)
  1. ;
  1. ;Input : XMITPTR - Pointer to entry in TRANSMITTED OUTPATIENT
  1. ; ENCOUNTER file (#409.73)
  1. ; XMITDATE - FileMan ate/time entry was transmitted to National
  1. ; Patient Care Database (Defaults to NOW)
  1. ; MID - Message Control ID used when entry was transmitted
  1. ; to National Patient Care Database
  1. ; BID - Batch Control ID used when entry was transmitted
  1. ; to National Patient Care Database
  1. ;Output : None
  1. ;
  1. ;Check input
  1. S XMITPTR=+$G(XMITPTR)
  1. Q:('$D(^SD(409.73,XMITPTR)))
  1. S XMITDATE=+$G(XMITDATE)
  1. S:('XMITDATE) XMITDATE="NOW"
  1. S MID=$G(MID)
  1. S BID=$G(BID)
  1. ;Declare variables
  1. N DIE,DA,DR,DIDEL,X,Y,DIC
  1. ;Store transmission data
  1. S DIE="^SD(409.73,"
  1. S DA=XMITPTR
  1. S DR="11///^S X=XMITDATE;12///^S X=MID;13///^S X=BID"
  1. D ^DIE
  1. ;Done
  1. Q
  1. ;
  1. ACKDATA(XMITPTR,ACKDATE,ACKCODE) ;Store acknowledgement data for entry
  1. ; in TRANSMITTED OUTPATIENT ENCOUNTER file (#409.73)
  1. ;
  1. ;Input : XMITPTR - Pointer to entry in TRANSMITTED OUTPATIENT
  1. ; ENCOUNTER file (#409.73)
  1. ; ACKDATE - FileMan date/time acknowledgement from National
  1. ; Patient Care Database was received (Defaults to NOW)
  1. ; ACKCODE - Denotes type of acknowledgement received
  1. ; A = Transmission was accepted (DEFAULT)
  1. ; R = Transmission was rejected
  1. ; E = Error
  1. ;Output : None
  1. ;
  1. ;Check input
  1. S XMITPTR=+$G(XMITPTR)
  1. Q:('$D(^SD(409.73,XMITPTR)))
  1. S ACKDATE=+$G(ACKDATE)
  1. S:('ACKDATE) ACKDATE="NOW"
  1. S ACKCODE=$G(ACKCODE)
  1. S:("ARE"'[ACKCODE) ACKCODE="A"
  1. ;Declare variables
  1. N DIE,DA,DR,DIDEL,X,Y,DIC
  1. ;Store acknowledgement data
  1. S DIE="^SD(409.73,"
  1. S DA=XMITPTR
  1. S DR="14///^S X=ACKDATE;15////^S X=ACKCODE"
  1. D ^DIE
  1. ;Done
  1. Q
  1. ;
  1. XMITED(ENCPTR) ;Determine if Outpatient Encounter was ever transmitted to the
  1. ; National Patient Care Database
  1. ;
  1. ;Input : ENCPTR - Pointer to Outpatient Encounter
  1. ;Output : DateTime - Date of last transmission (FileMan format)
  1. ; 0 - Encounter never transmitted
  1. ;Notes : Zero (0) will be returned on bad input
  1. ;
  1. ;Check input
  1. S ENCPTR=+$G(ENCPTR)
  1. Q:('ENCPTR) 0
  1. ;Declare variables
  1. N XMITPTR,XMITDATE,XMITHIST
  1. S XMITHIST=$NA(^TMP("SCDXFU03",$J,"XMITED"))
  1. K @XMITHIST
  1. ;Find entry in transmission file (#409.73)
  1. S XMITPTR=+$O(^SD(409.73,"AENC",ENCPTR,0))
  1. Q:('XMITPTR) 0
  1. Q:('$D(^SD(409.73,XMITPTR,0))) 0
  1. ;Get transmission history
  1. S XMITDATE=$$HST4XMIT^SCDXFU13(XMITPTR,XMITHIST,1)
  1. ;Get last transmission date/time
  1. S XMITDATE=+$O(@XMITHIST@(""),-1)
  1. ;Clean up and return date/time of last transmission
  1. K @XMITHIST
  1. Q XMITDATE
  1. ;
  1. ACCEPTED(ENCPTR) ;Determine if Outpatient Encounter was ever accepted
  1. ; by the National Patient Care Database (i.e. ACK = Accept)
  1. ;
  1. ;Input : ENCPTR - Pointer to Outpatient Encounter
  1. ;Output : DateTime - Date/time of last successfull ack (FileMan)
  1. ; 0 - Encounter never accepted
  1. ;Notes : Zero (0) will be returned on bad input
  1. ;
  1. ;Check input
  1. S ENCPTR=+$G(ENCPTR)
  1. Q:('ENCPTR) 0
  1. ;Declare variables
  1. N XMITPTR,ACKDATE,ACKHIST
  1. S ACKHIST=$NA(^TMP("SCDXFU03",$J,"ACCEPTED"))
  1. K @ACKHIST
  1. ;Find entry in transmission file (#409.73)
  1. S XMITPTR=+$O(^SD(409.73,"AENC",ENCPTR,0))
  1. Q:('XMITPTR) 0
  1. Q:('$D(^SD(409.73,XMITPTR,0))) 0
  1. ;Get acknowledgement history
  1. S ACKDATE=$$HST4XMIT^SCDXFU13(XMITPTR,ACKHIST,2)
  1. ;Search history for last ack with code of ACCEPT
  1. S ACKDATE=""
  1. F S ACKDATE=+$O(@ACKHIST@(ACKDATE),-1) Q:('ACKDATE) Q:($P($G(@ACKHIST@(ACKDATE)),"^",3)="A")
  1. ;Clean up and return date/time of last successfull ack
  1. K @ACKHIST
  1. Q ACKDATE
  1. ;
  1. VIDCNT(VSITID,EXCLUDE) ;Determine the number of parent Outpatient
  1. ; Encounters that have the given Visit ID
  1. ;
  1. ;Input : VSITID - Visit ID to check for (NOT THE POINTER TO 9000010)
  1. ; EXCLUDE - Encounter to optionally exclude from count
  1. ;Output : N - Number of parent encounters found
  1. ;Notes : Stand alone add/edits are considered a parent encounter
  1. ; : Zero (0) is returned if the Visit ID is not valid
  1. ;
  1. ;Check input
  1. S VSITID=$G(VSITID)
  1. Q:(VSITID="") 0
  1. S EXCLUDE=+$G(EXCLUDE)
  1. S:('$D(^SCE(EXCLUDE,0))) EXCLUDE=0
  1. ;Declare variables
  1. N ENCPTR,VSITPTR,COUNT
  1. ;Get pointer to Visit
  1. S VSITPTR=$$VID2IEN^VSIT(VSITID)
  1. Q:(VSITPTR<1) 0
  1. ;Count parent encounters for visit
  1. S COUNT=0
  1. S ENCPTR=0
  1. F S ENCPTR=+$O(^SCE("AVSIT",VSITPTR,ENCPTR)) Q:('ENCPTR) D
  1. .;Bad entry in x-ref
  1. .Q:('$D(^SCE(ENCPTR,0)))
  1. .;Exclude input encounter
  1. .Q:(ENCPTR=EXCLUDE)
  1. .;Screen out children
  1. .Q:(+$P($G(^SCE(ENCPTR,0)),"^",6))
  1. .;Increment count
  1. .S COUNT=COUNT+1
  1. Q COUNT