| 1 | SCDXFU02 ;ALB/JRP - AMB CARE FILE UTILITIES;03-MAY-1996 ; 17 Apr 2000  5:27 PM
 | 
|---|
| 2 |  ;;5.3;Scheduling;**44,110,128,66,215**;AUG 13, 1993
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | CRTDEL(ENCDATE,DFN,DELDATE,ENCNODE) ;Create entry in DELETED OUTPATIENT
 | 
|---|
| 5 |  ; ENCOUNTER file (#409.74)
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  ;Input  : ENCDATE - Date/time Outpatient Encounter occurred in
 | 
|---|
| 8 |  ;                   FileMan format
 | 
|---|
| 9 |  ;         DFN - Pointer to entry in PATIENT file (#2) that the
 | 
|---|
| 10 |  ;               deleted Outpatient Encounter was for
 | 
|---|
| 11 |  ;         DELDATE - FileMan date/time Outpatient Encounter was deleted
 | 
|---|
| 12 |  ;                   (Defaults to NOW)
 | 
|---|
| 13 |  ;         ENCNODE - Zero node of entry in OUTPATIENT ENCOUNTER file
 | 
|---|
| 14 |  ;                   (#409.68) that was deleted
 | 
|---|
| 15 |  ;Output : DELPTR - Pointer to entry in DELETED OUTPATIENT ENCOUNTER
 | 
|---|
| 16 |  ;                  file (#409.74)
 | 
|---|
| 17 |  ;         -1^Error - Unable to create entry / bad input
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  ;Check input
 | 
|---|
| 20 |  S ENCDATE=+$G(ENCDATE)
 | 
|---|
| 21 |  Q:('ENCDATE) "-1^Did not pass date/time Outpatient Encounter occurred"
 | 
|---|
| 22 |  S DFN=+$G(DFN)
 | 
|---|
| 23 |  Q:('$D(^DPT(DFN,0))) "-1^Did not pass valid pointer to patient"
 | 
|---|
| 24 |  S DELDATE=+$G(DELDATE)
 | 
|---|
| 25 |  S:('DELDATE) DELDATE="NOW"
 | 
|---|
| 26 |  S ENCNODE=$G(ENCNODE)
 | 
|---|
| 27 |  ;Declare variables
 | 
|---|
| 28 |  N DIC,DA,DINUM,DLAYGO,DIDEL,DELPTR
 | 
|---|
| 29 |  ;Create entry
 | 
|---|
| 30 |  S DIC="^SD(409.74,"
 | 
|---|
| 31 |  S DIC(0)="L"
 | 
|---|
| 32 |  S X=ENCDATE
 | 
|---|
| 33 |  S DIC("DR")=".02////^S X=DFN;.03///^S X=DELDATE;11////^S X=ENCNODE"
 | 
|---|
| 34 |  S DLAYGO=409.74
 | 
|---|
| 35 |  K DD,DO D FILE^DICN
 | 
|---|
| 36 |  ;Get pointer to entry
 | 
|---|
| 37 |  S DELPTR=+Y
 | 
|---|
| 38 |  ;Error creating entry
 | 
|---|
| 39 |  S:(DELPTR<0) DELPTR="-1^Unable to create entry in Deleted Outpatient Encounter file"
 | 
|---|
| 40 |  ;Done
 | 
|---|
| 41 |  Q DELPTR
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 | DELDEL(DELPTR) ;Delete entry in DELETED OUTPATIENT ENCOUNTER file (#409.74)
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 |  ;Input  : DELDEL
 | 
|---|
| 46 |  ;Output : 0 - Success
 | 
|---|
| 47 |  ;        -1 - Unable to delete entry
 | 
|---|
| 48 |  ;Note   : Success (0) is returned when a valid pointer to the
 | 
|---|
| 49 |  ;         DELETED OUTPATIENT ENCOUNTER ERROR file is not passed
 | 
|---|
| 50 |  ;         (Deleting an entry that doesn't exist is successful)
 | 
|---|
| 51 |  ;       : It is the calling application's responsibility to also
 | 
|---|
| 52 |  ;         delete the related entry in the TRANSMITTED OUTPATIENT
 | 
|---|
| 53 |  ;         ENCOUNTER file (#409.73)
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 |  ;Check input
 | 
|---|
| 56 |  S DELPTR=+$G(DELPTR)
 | 
|---|
| 57 |  Q:('$D(^SD(409.74,DELPTR,0))) 0
 | 
|---|
| 58 |  ;Declare variables
 | 
|---|
| 59 |  N DIK,DA,X,Y,DIC
 | 
|---|
| 60 |  ;Delete entry
 | 
|---|
| 61 |  S DIK="^SD(409.74,"
 | 
|---|
| 62 |  S DA=DELPTR
 | 
|---|
| 63 |  D ^DIK
 | 
|---|
| 64 |  ;Done
 | 
|---|
| 65 |  Q 0
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 | PTR4MID(MID) ;Find entry in TRANSMITTED OUTPATIENT ENCOUNTER file (#409.73)
 | 
|---|
| 68 |  ; using Message Control ID
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 |  ;Input  : MID - Message Control ID used when entry was transmitted to
 | 
|---|
| 71 |  ;               National Patient Care Database
 | 
|---|
| 72 |  ;Output : XMITPTR - Pointer to entry in TRANSMITTED OUTPATIENT
 | 
|---|
| 73 |  ;                   ENCOUNTER file (#409.73)
 | 
|---|
| 74 |  ;         0 - Entry in TRANSMITTED OUTPATIENT ENCOUNTER file with
 | 
|---|
| 75 |  ;             given Message Control ID could not be found
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 |  ;Check input
 | 
|---|
| 78 |  S MID=$G(MID)
 | 
|---|
| 79 |  Q:(MID="") 0
 | 
|---|
| 80 |  ;Find entry - done
 | 
|---|
| 81 |  Q +$O(^SD(409.73,"AACMID",MID,""))
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 | PTRS4BID(BID,ARRAY) ;Find all entries in TRANSMITTED OUTPATIENT ENCOUNTER
 | 
|---|
| 84 |  ; file (#409.73) with a specified Batch Control ID
 | 
|---|
| 85 |  ;
 | 
|---|
| 86 |  ;Input  : BID - Batch Control ID used when entries were transmitted
 | 
|---|
| 87 |  ;               to National Patient Care Database
 | 
|---|
| 88 |  ;         ARRAY - Array to place pointers to TRANSMITTED OUTPATIENT
 | 
|---|
| 89 |  ;                 ENCOUNTER file (#409.73) into (Full global reference)
 | 
|---|
| 90 |  ;                 (Defaults to ^TMP("AMB-CARE",$J,"BID"))
 | 
|---|
| 91 |  ;Output : None
 | 
|---|
| 92 |  ;         ARRAY(XMITPTR) - Array of pointers to TRANSMITTED OUTPATIENT
 | 
|---|
| 93 |  ;                          ENCOUNTER file (#409.73)
 | 
|---|
| 94 |  ;Note   : It is the responsibility of the calling procedure to
 | 
|---|
| 95 |  ;         initialize (i.e. KILL) ARRAY
 | 
|---|
| 96 |  ;
 | 
|---|
| 97 |  ;Check input
 | 
|---|
| 98 |  S BID=$G(BID)
 | 
|---|
| 99 |  Q:(BID="")
 | 
|---|
| 100 |  S ARRAY=$G(ARRAY)
 | 
|---|
| 101 |  S:(ARRAY="") ARRAY="^TMP(""AMB-CARE"","_$J_",""BID"")"
 | 
|---|
| 102 |  ;Build array of pointers (merge AACBID cross reference into ARRAY)
 | 
|---|
| 103 |  M @ARRAY=^SD(409.73,"AACBID",BID)
 | 
|---|
| 104 |  Q
 | 
|---|
| 105 |  ;
 | 
|---|
| 106 | CRTERR(XMITPTR,ERRCODE,NPCD) ;Create entry in TRANSMITTED OUTPATIENT ENCOUNTER
 | 
|---|
| 107 |  ; ERROR file (#409.75)
 | 
|---|
| 108 |  ;
 | 
|---|
| 109 |  ;Input  : XMITPTR - Pointer to entry in TRANSMITTED OUTPATIENT
 | 
|---|
| 110 |  ;                   ENCOUNTER file (#409.73)
 | 
|---|
| 111 |  ;         ERRCODE - Error code (external format)
 | 
|---|
| 112 |  ;            NPCD - '1' if filed by Austin acknowledgment (optional)
 | 
|---|
| 113 |  ;
 | 
|---|
| 114 |  ;Output : ERRPTR - Pointer to entry in TRANSMITTED OUTPATIENT ENCOUNTER
 | 
|---|
| 115 |  ;                  ERROR file (#409.75)
 | 
|---|
| 116 |  ;         -1^Error - Unable to create entry / bad input
 | 
|---|
| 117 |  ;Notes  : ERRCODE must be a valid entry in TRANSMITTED OUTPATIENT
 | 
|---|
| 118 |  ;         ENCOUNTER ERROR CODE file (#409.76)
 | 
|---|
| 119 |  ;
 | 
|---|
| 120 |  ;Check input
 | 
|---|
| 121 |  ;Convert code to 'reason unknown' if necessary
 | 
|---|
| 122 |  I $G(NPCD) D
 | 
|---|
| 123 |  .I '$L(ERRCODE) S ERRCODE=999 Q
 | 
|---|
| 124 |  .I '$O(^SD(409.76,"B",ERRCODE,"")) S ERRCODE=999
 | 
|---|
| 125 |  .Q
 | 
|---|
| 126 |  S XMITPTR=+$G(XMITPTR)
 | 
|---|
| 127 |  Q:('$D(^SD(409.73,XMITPTR,0))) "-1^Did not pass valid pointer to Transmitted Outpatient Encounter"
 | 
|---|
| 128 |  S ERRCODE=$G(ERRCODE)
 | 
|---|
| 129 |  Q:(ERRCODE="") "-1^Did not pass valid error code"
 | 
|---|
| 130 |  Q:('$O(^SD(409.76,"B",ERRCODE,""))) "-1^Did not pass valid error code"
 | 
|---|
| 131 |  ;Declare variables
 | 
|---|
| 132 |  N DIC,DA,DINUM,DLAYGO,X,Y
 | 
|---|
| 133 |  ;Create entry
 | 
|---|
| 134 |  S DIC="^SD(409.75,"
 | 
|---|
| 135 |  S DIC(0)="L"
 | 
|---|
| 136 |  S DLAYGO=409.75
 | 
|---|
| 137 |  S X=XMITPTR
 | 
|---|
| 138 |  S DIC("DR")=".02///^S X=ERRCODE"
 | 
|---|
| 139 |  K DD,DO D FILE^DICN
 | 
|---|
| 140 |  ;Get pointer to entry
 | 
|---|
| 141 |  S ERRPTR=+Y
 | 
|---|
| 142 |  ;Error creating entry
 | 
|---|
| 143 |  S:(ERRPTR<0) ERRPTR="-1^Unable to create entry in Transmitted Outpatient Encounter Error file"
 | 
|---|
| 144 |  ;Done
 | 
|---|
| 145 |  Q ERRPTR
 | 
|---|
| 146 |  ;
 | 
|---|
| 147 | DELERR(ERRPTR) ;Delete entry in TRANSMITTED OUTPATIENT ENCOUNTER ERROR
 | 
|---|
| 148 |  ; file (#409.75)
 | 
|---|
| 149 |  ;
 | 
|---|
| 150 |  ;Input  : ERRPTR - Pointer to entry in TRANSMITTED OUTPATIENT ENCOUNTER
 | 
|---|
| 151 |  ;                  ERROR file (#409.75) to delete
 | 
|---|
| 152 |  ;Output : 0 - Success
 | 
|---|
| 153 |  ;        -1 - Unable to delete entry
 | 
|---|
| 154 |  ;Note   : Success (0) is returned when a valid pointer to the
 | 
|---|
| 155 |  ;         TRANSMITTED OUTPATIENT ENCOUNTER ERROR file is not passed
 | 
|---|
| 156 |  ;         (Deleting an entry that doesn't exist is successful)
 | 
|---|
| 157 |  ;
 | 
|---|
| 158 |  ;Check input
 | 
|---|
| 159 |  S ERRPTR=+$G(ERRPTR)
 | 
|---|
| 160 |  Q:('$D(^SD(409.75,ERRPTR,0))) 0
 | 
|---|
| 161 |  ;Declare variables
 | 
|---|
| 162 |  N DIK,DA,X,Y,DIC
 | 
|---|
| 163 |  ;Delete entry
 | 
|---|
| 164 |  S DIK="^SD(409.75,"
 | 
|---|
| 165 |  S DA=ERRPTR
 | 
|---|
| 166 |  D ^DIK
 | 
|---|
| 167 |  ;Done
 | 
|---|
| 168 |  Q 0
 | 
|---|
| 169 |  ;
 | 
|---|
| 170 | DELAERR(XMITPTR,ERR) ;Delete all entries in TRANSMITTED OUTPATIENT ENCOUNTER
 | 
|---|
| 171 |  ; ERROR file (#409.75) for a Transmitted Outpatient Encounter
 | 
|---|
| 172 |  ;
 | 
|---|
| 173 |  ;Input  : XMITPTR - Pointer to entry in TRANSMITTED OUTPATIENT
 | 
|---|
| 174 |  ;                   ENCOUNTER file (#409.73) to delete errors for
 | 
|---|
| 175 |  ;             ERR - Which error to delete.
 | 
|---|
| 176 |  ;    0 OR NOTHING - delete ALL errors
 | 
|---|
| 177 |  ;               1 - VISTA errors
 | 
|---|
| 178 |  ;               2 - NPCDB errors
 | 
|---|
| 179 |  ;               3 - HL7 errors
 | 
|---|
| 180 |  ;                   
 | 
|---|
| 181 |  ;Output : None
 | 
|---|
| 182 |  ;
 | 
|---|
| 183 |  ;Check input
 | 
|---|
| 184 |  S XMITPTR=+$G(XMITPTR)
 | 
|---|
| 185 |  S ERR=+$G(ERR)
 | 
|---|
| 186 |  ;Declare variables
 | 
|---|
| 187 |  N ERRPTR,TMP
 | 
|---|
| 188 |  ;Find all entries in Transmitted Outpatient Encounter Error file that
 | 
|---|
| 189 |  ; point to the Transmitted Outpatient Encounter and delete
 | 
|---|
| 190 |  S ERRPTR=""
 | 
|---|
| 191 |  F  S ERRPTR=+$O(^SD(409.75,"B",XMITPTR,ERRPTR)) Q:('ERRPTR)  DO
 | 
|---|
| 192 |  .I '+ERR S TMP=$$DELERR(ERRPTR) ;default and all
 | 
|---|
| 193 |  .N ERTYPE
 | 
|---|
| 194 |  .S ERTYPE=+$P($G(^SD(409.75,ERRPTR,0)),U,2)
 | 
|---|
| 195 |  .Q:'ERTYPE
 | 
|---|
| 196 |  .S ERTYPE=$P($G(^SD(409.76,ERTYPE,0)),U,2)
 | 
|---|
| 197 |  .I ERR=1,ERTYPE="V" S TMP=$$DELERR(ERRPTR) ;delete vista errors
 | 
|---|
| 198 |  .I ERR=2,ERTYPE="N" S TMP=$$DELERR(ERRPTR) ;delete NPCDB errors
 | 
|---|
| 199 |  .I ERR=3,ERTYPE="T" S TMP=$$DELERR(ERRPTR) ;delete HL7 errors
 | 
|---|
| 200 |  .Q
 | 
|---|
| 201 |  ;Done
 | 
|---|
| 202 |  Q
 | 
|---|