[613] | 1 | SCDXFU03 ;ALB/JRP - AMBULATORY CARE FILE UTILITIES;01-JUL-1996
|
---|
| 2 | ;;5.3;Scheduling;**44,110,121,126,128**;AUG 13, 1993
|
---|
| 3 | ;
|
---|
| 4 | DELXMIT(PTR,PTR2) ;Delete entry in TRANSMITTED OUTPATIENT ENCOUNTER
|
---|
| 5 | ; file (#409.73)
|
---|
| 6 | ;
|
---|
| 7 | ;Input : PTR - Pointer to entry in one of the following files
|
---|
| 8 | ; * TRANSMITTED OUTPATIENT ENCOUNTER file (#409.73)
|
---|
| 9 | ; * OUTPATIENT ENCOUNTER file (#409.68)
|
---|
| 10 | ; * DELETED OUTPATIENT ENCOUNTER file (#409.74)
|
---|
| 11 | ; PTR2 - Denotes which file PTR points to
|
---|
| 12 | ; 0 = TRANSMITTED OUTPATIENT ENCOUNTER file (Default)
|
---|
| 13 | ; 1 = OUTPATIENT ENCOUNTER file
|
---|
| 14 | ; 2 = DELETED OUTPATIENT ENCOUNTER file
|
---|
| 15 | ;Output : 0 - Success
|
---|
| 16 | ; -1 - Unable to delete entry
|
---|
| 17 | ;Note : Success (0) is returned when a valid pointer to the
|
---|
| 18 | ; specified file is not passed or an entry in the
|
---|
| 19 | ; TRANSMITTED OUTPATIENT ENCOUNTER file can not be found
|
---|
| 20 | ; (Deleting an entry that doesn't exist is successful)
|
---|
| 21 | ; : If the TRANSMITTED OUTPATIENT ENCOUNTER points to an entry
|
---|
| 22 | ; in the DELETED OUTPATIENT ENCOUNTER file, the DELETED
|
---|
| 23 | ; OUTPATIENT ENCOUNTER will also be deleted
|
---|
| 24 | ;
|
---|
| 25 | ;Check input
|
---|
| 26 | S PTR=+$G(PTR)
|
---|
| 27 | S PTR2=+$G(PTR2)
|
---|
| 28 | S:((PTR2<0)!(PTR2>2)) PTR2=0
|
---|
| 29 | ;Declare variables
|
---|
| 30 | N DIK,DA,X,Y,DIC,XMITPTR,DELPTR
|
---|
| 31 | ;Get pointer to TRANSMITTED OUTPATIENT ENCOUNTER file
|
---|
| 32 | S XMITPTR=PTR
|
---|
| 33 | S:(PTR2=1) XMITPTR=+$O(^SD(409.73,"AENC",PTR,0))
|
---|
| 34 | S:(PTR2=2) XMITPTR=+$O(^SD(409.73,"ADEL",PTR,0))
|
---|
| 35 | ;Entry in TRANSMITTED OUTPATIENT ENCOUNTER file doesn't exist - success
|
---|
| 36 | Q:('$D(^SD(409.73,XMITPTR,0))) 0
|
---|
| 37 | ;Delete all entries in TRANSMITTED OUTPATIENT ENCOUNTER ERROR file
|
---|
| 38 | ; (#409.75) that refer to entry being deleted
|
---|
| 39 | D DELAERR^SCDXFU02(XMITPTR)
|
---|
| 40 | ;Delete all entries in ACRP Transmission History file (#409.77)
|
---|
| 41 | D DELAHIST^SCDXFU10(XMITPTR)
|
---|
| 42 | ;Delete entry in DELETED OUTPATIENT ENCOUNTER file (#409.74)
|
---|
| 43 | S DELPTR=+$$XMIT4DEL^SCDXFU11(XMITPTR)
|
---|
| 44 | S:(DELPTR>0) X=$$DELDEL^SCDXFU02(DELPTR)
|
---|
| 45 | ;Delete entry
|
---|
| 46 | S DIK="^SD(409.73,"
|
---|
| 47 | S DA=XMITPTR
|
---|
| 48 | D ^DIK
|
---|
| 49 | ;Done
|
---|
| 50 | Q 0
|
---|
| 51 | ;
|
---|
| 52 | XMITDATA(XMITPTR,XMITDATE,MID,BID) ;Store transmission data for entry in
|
---|
| 53 | ; TRANSMITTED OUTPATIENT ENCOUNTER file (#409.73)
|
---|
| 54 | ;
|
---|
| 55 | ;Input : XMITPTR - Pointer to entry in TRANSMITTED OUTPATIENT
|
---|
| 56 | ; ENCOUNTER file (#409.73)
|
---|
| 57 | ; XMITDATE - FileMan ate/time entry was transmitted to National
|
---|
| 58 | ; Patient Care Database (Defaults to NOW)
|
---|
| 59 | ; MID - Message Control ID used when entry was transmitted
|
---|
| 60 | ; to National Patient Care Database
|
---|
| 61 | ; BID - Batch Control ID used when entry was transmitted
|
---|
| 62 | ; to National Patient Care Database
|
---|
| 63 | ;Output : None
|
---|
| 64 | ;
|
---|
| 65 | ;Check input
|
---|
| 66 | S XMITPTR=+$G(XMITPTR)
|
---|
| 67 | Q:('$D(^SD(409.73,XMITPTR)))
|
---|
| 68 | S XMITDATE=+$G(XMITDATE)
|
---|
| 69 | S:('XMITDATE) XMITDATE="NOW"
|
---|
| 70 | S MID=$G(MID)
|
---|
| 71 | S BID=$G(BID)
|
---|
| 72 | ;Declare variables
|
---|
| 73 | N DIE,DA,DR,DIDEL,X,Y,DIC
|
---|
| 74 | ;Store transmission data
|
---|
| 75 | S DIE="^SD(409.73,"
|
---|
| 76 | S DA=XMITPTR
|
---|
| 77 | S DR="11///^S X=XMITDATE;12///^S X=MID;13///^S X=BID"
|
---|
| 78 | D ^DIE
|
---|
| 79 | ;Done
|
---|
| 80 | Q
|
---|
| 81 | ;
|
---|
| 82 | ACKDATA(XMITPTR,ACKDATE,ACKCODE) ;Store acknowledgement data for entry
|
---|
| 83 | ; in TRANSMITTED OUTPATIENT ENCOUNTER file (#409.73)
|
---|
| 84 | ;
|
---|
| 85 | ;Input : XMITPTR - Pointer to entry in TRANSMITTED OUTPATIENT
|
---|
| 86 | ; ENCOUNTER file (#409.73)
|
---|
| 87 | ; ACKDATE - FileMan date/time acknowledgement from National
|
---|
| 88 | ; Patient Care Database was received (Defaults to NOW)
|
---|
| 89 | ; ACKCODE - Denotes type of acknowledgement received
|
---|
| 90 | ; A = Transmission was accepted (DEFAULT)
|
---|
| 91 | ; R = Transmission was rejected
|
---|
| 92 | ; E = Error
|
---|
| 93 | ;Output : None
|
---|
| 94 | ;
|
---|
| 95 | ;Check input
|
---|
| 96 | S XMITPTR=+$G(XMITPTR)
|
---|
| 97 | Q:('$D(^SD(409.73,XMITPTR)))
|
---|
| 98 | S ACKDATE=+$G(ACKDATE)
|
---|
| 99 | S:('ACKDATE) ACKDATE="NOW"
|
---|
| 100 | S ACKCODE=$G(ACKCODE)
|
---|
| 101 | S:("ARE"'[ACKCODE) ACKCODE="A"
|
---|
| 102 | ;Declare variables
|
---|
| 103 | N DIE,DA,DR,DIDEL,X,Y,DIC
|
---|
| 104 | ;Store acknowledgement data
|
---|
| 105 | S DIE="^SD(409.73,"
|
---|
| 106 | S DA=XMITPTR
|
---|
| 107 | S DR="14///^S X=ACKDATE;15////^S X=ACKCODE"
|
---|
| 108 | D ^DIE
|
---|
| 109 | ;Done
|
---|
| 110 | Q
|
---|
| 111 | ;
|
---|
| 112 | XMITED(ENCPTR) ;Determine if Outpatient Encounter was ever transmitted to the
|
---|
| 113 | ; National Patient Care Database
|
---|
| 114 | ;
|
---|
| 115 | ;Input : ENCPTR - Pointer to Outpatient Encounter
|
---|
| 116 | ;Output : DateTime - Date of last transmission (FileMan format)
|
---|
| 117 | ; 0 - Encounter never transmitted
|
---|
| 118 | ;Notes : Zero (0) will be returned on bad input
|
---|
| 119 | ;
|
---|
| 120 | ;Check input
|
---|
| 121 | S ENCPTR=+$G(ENCPTR)
|
---|
| 122 | Q:('ENCPTR) 0
|
---|
| 123 | ;Declare variables
|
---|
| 124 | N XMITPTR,XMITDATE,XMITHIST
|
---|
| 125 | S XMITHIST=$NA(^TMP("SCDXFU03",$J,"XMITED"))
|
---|
| 126 | K @XMITHIST
|
---|
| 127 | ;Find entry in transmission file (#409.73)
|
---|
| 128 | S XMITPTR=+$O(^SD(409.73,"AENC",ENCPTR,0))
|
---|
| 129 | Q:('XMITPTR) 0
|
---|
| 130 | Q:('$D(^SD(409.73,XMITPTR,0))) 0
|
---|
| 131 | ;Get transmission history
|
---|
| 132 | S XMITDATE=$$HST4XMIT^SCDXFU13(XMITPTR,XMITHIST,1)
|
---|
| 133 | ;Get last transmission date/time
|
---|
| 134 | S XMITDATE=+$O(@XMITHIST@(""),-1)
|
---|
| 135 | ;Clean up and return date/time of last transmission
|
---|
| 136 | K @XMITHIST
|
---|
| 137 | Q XMITDATE
|
---|
| 138 | ;
|
---|
| 139 | ACCEPTED(ENCPTR) ;Determine if Outpatient Encounter was ever accepted
|
---|
| 140 | ; by the National Patient Care Database (i.e. ACK = Accept)
|
---|
| 141 | ;
|
---|
| 142 | ;Input : ENCPTR - Pointer to Outpatient Encounter
|
---|
| 143 | ;Output : DateTime - Date/time of last successfull ack (FileMan)
|
---|
| 144 | ; 0 - Encounter never accepted
|
---|
| 145 | ;Notes : Zero (0) will be returned on bad input
|
---|
| 146 | ;
|
---|
| 147 | ;Check input
|
---|
| 148 | S ENCPTR=+$G(ENCPTR)
|
---|
| 149 | Q:('ENCPTR) 0
|
---|
| 150 | ;Declare variables
|
---|
| 151 | N XMITPTR,ACKDATE,ACKHIST
|
---|
| 152 | S ACKHIST=$NA(^TMP("SCDXFU03",$J,"ACCEPTED"))
|
---|
| 153 | K @ACKHIST
|
---|
| 154 | ;Find entry in transmission file (#409.73)
|
---|
| 155 | S XMITPTR=+$O(^SD(409.73,"AENC",ENCPTR,0))
|
---|
| 156 | Q:('XMITPTR) 0
|
---|
| 157 | Q:('$D(^SD(409.73,XMITPTR,0))) 0
|
---|
| 158 | ;Get acknowledgement history
|
---|
| 159 | S ACKDATE=$$HST4XMIT^SCDXFU13(XMITPTR,ACKHIST,2)
|
---|
| 160 | ;Search history for last ack with code of ACCEPT
|
---|
| 161 | S ACKDATE=""
|
---|
| 162 | F S ACKDATE=+$O(@ACKHIST@(ACKDATE),-1) Q:('ACKDATE) Q:($P($G(@ACKHIST@(ACKDATE)),"^",3)="A")
|
---|
| 163 | ;Clean up and return date/time of last successfull ack
|
---|
| 164 | K @ACKHIST
|
---|
| 165 | Q ACKDATE
|
---|
| 166 | ;
|
---|
| 167 | VIDCNT(VSITID,EXCLUDE) ;Determine the number of parent Outpatient
|
---|
| 168 | ; Encounters that have the given Visit ID
|
---|
| 169 | ;
|
---|
| 170 | ;Input : VSITID - Visit ID to check for (NOT THE POINTER TO 9000010)
|
---|
| 171 | ; EXCLUDE - Encounter to optionally exclude from count
|
---|
| 172 | ;Output : N - Number of parent encounters found
|
---|
| 173 | ;Notes : Stand alone add/edits are considered a parent encounter
|
---|
| 174 | ; : Zero (0) is returned if the Visit ID is not valid
|
---|
| 175 | ;
|
---|
| 176 | ;Check input
|
---|
| 177 | S VSITID=$G(VSITID)
|
---|
| 178 | Q:(VSITID="") 0
|
---|
| 179 | S EXCLUDE=+$G(EXCLUDE)
|
---|
| 180 | S:('$D(^SCE(EXCLUDE,0))) EXCLUDE=0
|
---|
| 181 | ;Declare variables
|
---|
| 182 | N ENCPTR,VSITPTR,COUNT
|
---|
| 183 | ;Get pointer to Visit
|
---|
| 184 | S VSITPTR=$$VID2IEN^VSIT(VSITID)
|
---|
| 185 | Q:(VSITPTR<1) 0
|
---|
| 186 | ;Count parent encounters for visit
|
---|
| 187 | S COUNT=0
|
---|
| 188 | S ENCPTR=0
|
---|
| 189 | F S ENCPTR=+$O(^SCE("AVSIT",VSITPTR,ENCPTR)) Q:('ENCPTR) D
|
---|
| 190 | .;Bad entry in x-ref
|
---|
| 191 | .Q:('$D(^SCE(ENCPTR,0)))
|
---|
| 192 | .;Exclude input encounter
|
---|
| 193 | .Q:(ENCPTR=EXCLUDE)
|
---|
| 194 | .;Screen out children
|
---|
| 195 | .Q:(+$P($G(^SCE(ENCPTR,0)),"^",6))
|
---|
| 196 | .;Increment count
|
---|
| 197 | .S COUNT=COUNT+1
|
---|
| 198 | Q COUNT
|
---|