| [613] | 1 | SCDXRT01 ;ALB/JRP - AMB CARE RETRANSMISSION;09-MAY-1996
 | 
|---|
 | 2 |  ;;5.3;Scheduling;**44**;AUG 13, 1993
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 | RTRNRNG ;Mark all [Deleted] Outpatient Encounters for a user specified
 | 
|---|
 | 5 |  ; date range for retransmission to the National Ambulatory Care
 | 
|---|
 | 6 |  ; Database
 | 
|---|
 | 7 |  ;
 | 
|---|
 | 8 |  ;Input  : None
 | 
|---|
 | 9 |  ;Output : None
 | 
|---|
 | 10 |  ;Note   : User is prompted for the date range to retransmit
 | 
|---|
 | 11 |  ;       : Encounters that are not contained in the Transmitted
 | 
|---|
 | 12 |  ;         Outpatient Encounter file (#409.73) can not be
 | 
|---|
 | 13 |  ;         retransmitted
 | 
|---|
 | 14 |  ;       : [Deleted] Encounters that occurred before switching to new
 | 
|---|
 | 15 |  ;         transmission format can not be retransmitted
 | 
|---|
 | 16 |  ;       : [Deleted] Encounters that occurred within the last two days
 | 
|---|
 | 17 |  ;         can not be retransmitted
 | 
|---|
 | 18 |  ;
 | 
|---|
 | 19 |  ;Declare variables
 | 
|---|
 | 20 |  N MINDT,MAXDT,SCDXSTRT,SCDXEND,HELPTXT,X,%H,%,%I
 | 
|---|
 | 21 |  N ZTSK,ZTDESC,ZTRTN,ZTIO,ZTDTH
 | 
|---|
 | 22 |  W !!
 | 
|---|
 | 23 |  ;Cut-off date for old transmission format is earliest date
 | 
|---|
 | 24 |  ; allowed for retransmission (default to 10/1/96)
 | 
|---|
 | 25 |  S MINDT=+$P($G(^SD(404.91,1,"AMB")),"^",2)
 | 
|---|
 | 26 |  S:('MINDT) MINDT=2961001
 | 
|---|
 | 27 |  ;Today is the latest date allowed for retransmission
 | 
|---|
 | 28 |  D NOW^%DTC
 | 
|---|
 | 29 |  S MAXDT=X
 | 
|---|
 | 30 |  ;Set up help text for getting beginning and ending dates
 | 
|---|
 | 31 |  S HELPTXT("BGN")="Enter the beginning date for retransmitting encounters"
 | 
|---|
 | 32 |  S HELPTXT("END")="Enter the ending date for retransmitting encounters"
 | 
|---|
 | 33 |  ;Get beginning and ending dates
 | 
|---|
 | 34 |  S X=$$GETDTRNG^SCDXUTL1(MINDT,MAXDT,"HELPTXT(""BGN"")","HELPTXT(""END"")")
 | 
|---|
 | 35 |  ;User abort / time out
 | 
|---|
 | 36 |  Q:(X<0)
 | 
|---|
 | 37 |  W !!
 | 
|---|
 | 38 |  ;Verify that user wants to do this
 | 
|---|
 | 39 |  S SCDXSTRT=$P(X,"^",1)
 | 
|---|
 | 40 |  S SCDXEND=$P(X,"^",2)
 | 
|---|
 | 41 |  S DIR("A",1)=" "
 | 
|---|
 | 42 |  S DIR("A",2)=" "
 | 
|---|
 | 43 |  S X=(+$E(SCDXSTRT,4,5))_"/"_(+$E(SCDXSTRT,6,7))_"/"_(1700+$E(SCDXSTRT,1,3))
 | 
|---|
 | 44 |  S DIR("A",3)="All outpatient encounters that occurred between "_X
 | 
|---|
 | 45 |  S X=(+$E(SCDXEND,4,5))_"/"_(+$E(SCDXEND,6,7))_"/"_(1700+$E(SCDXEND,1,3))
 | 
|---|
 | 46 |  S DIR("A",4)="and "_X_" will be marked for retransmission to the"
 | 
|---|
 | 47 |  S DIR("A",5)="National Patient Care Database."
 | 
|---|
 | 48 |  S DIR("A",6)=" "
 | 
|---|
 | 49 |  S DIR("A",7)=" "
 | 
|---|
 | 50 |  S DIR("A")="Are you sure you want to do this ? "
 | 
|---|
 | 51 |  S DIR(0)="YA"
 | 
|---|
 | 52 |  D ^DIR
 | 
|---|
 | 53 |  ;Not verified / user abort / time out
 | 
|---|
 | 54 |  Q:('Y)
 | 
|---|
 | 55 |  ;Queue marking for retransmission
 | 
|---|
 | 56 |  S ZTRTN="TASKRX^SCDXRT01"
 | 
|---|
 | 57 |  S ZTDESC="Mark [Deleted] Outpatient Encounters for retransmission"
 | 
|---|
 | 58 |  S ZTDTH=$H
 | 
|---|
 | 59 |  S ZTIO=""
 | 
|---|
 | 60 |  S ZTSAVE("SCDXSTRT")=SCDXSTRT
 | 
|---|
 | 61 |  S ZTSAVE("SCDXEND")=SCDXEND
 | 
|---|
 | 62 |  K ZTSK D ^%ZTLOAD
 | 
|---|
 | 63 |  W:('$G(ZTSK)) !!,"** UNABLE TO QUEUE MARKING OF ENCOUNTERS FOR RETRANSMISSION **",!!
 | 
|---|
 | 64 |  W:($G(ZTSK)) !!,"Marking of encounters for retransmission queued as task number ",ZTSK
 | 
|---|
 | 65 |  W !!
 | 
|---|
 | 66 |  Q
 | 
|---|
 | 67 |  ;
 | 
|---|
 | 68 | TASKRX ;Mark all [Deleted] Outpatient Encounters in a given date range
 | 
|---|
 | 69 |  ; for retransmission
 | 
|---|
 | 70 |  ;
 | 
|---|
 | 71 |  ;Input  : SCDXSTRT - Date to begin marking encounters from 
 | 
|---|
 | 72 |  ;                    (FileMan format) (Required)
 | 
|---|
 | 73 |  ;         SCDXEND - Date to end marking encounters at
 | 
|---|
 | 74 |  ;                   (FileMan format) (Required)
 | 
|---|
 | 75 |  ;Output : None
 | 
|---|
 | 76 |  ;Notes  : Encounters that are not contained in the Transmitted
 | 
|---|
 | 77 |  ;         Outpatient Encounter file (#409.73) can not be
 | 
|---|
 | 78 |  ;         retransmitted
 | 
|---|
 | 79 |  ;       : This entry point should be used when marking for
 | 
|---|
 | 80 |  ;         retransmission is being queued.  If queued, ZTSTOP will
 | 
|---|
 | 81 |  ;         be set accordingly.
 | 
|---|
 | 82 |  ;
 | 
|---|
 | 83 |  ;Check input
 | 
|---|
 | 84 |  Q:('$G(SCDXSTRT))
 | 
|---|
 | 85 |  Q:('$G(SCDXEND))
 | 
|---|
 | 86 |  ;Declare variables
 | 
|---|
 | 87 |  N JUNK
 | 
|---|
 | 88 |  ;Call module to mark entries for retransmission
 | 
|---|
 | 89 |  S JUNK=$$REXMIT(SCDXSTRT,SCDXEND)
 | 
|---|
 | 90 |  ;Set ZTSTOP accordingly
 | 
|---|
 | 91 |  S:($P(JUNK,"^",4)) ZTSTOP=1
 | 
|---|
 | 92 |  ;Done
 | 
|---|
 | 93 |  Q
 | 
|---|
 | 94 |  ;
 | 
|---|
 | 95 | REXMIT(STARTDT,ENDDT) ;Mark all [Deleted] Outpatient Encounters in a
 | 
|---|
 | 96 |  ; given date range for retransmission
 | 
|---|
 | 97 |  ;
 | 
|---|
 | 98 |  ;Input  : STARTDT - Date to begin marking encounters from 
 | 
|---|
 | 99 |  ;                   (FileMan format) (Required)
 | 
|---|
 | 100 |  ;         ENDDT - Date to end marking encounters at (FileMan format)
 | 
|---|
 | 101 |  ;                 (Required)
 | 
|---|
 | 102 |  ;Output : Tot^Enc^Del^Stop - Number of [deleted] encounters marked for
 | 
|---|
 | 103 |  ;                            retransmission
 | 
|---|
 | 104 |  ;           Tot - Total number of encounters marked
 | 
|---|
 | 105 |  ;           Enc - Number of existing encounters marked
 | 
|---|
 | 106 |  ;           Del - Number of deleted encounters marked
 | 
|---|
 | 107 |  ;           Stop - Flag indicating if task was asked to stop
 | 
|---|
 | 108 |  ;             1 = Task was asked to stop
 | 
|---|
 | 109 |  ;             0 = Task was not asked to stop
 | 
|---|
 | 110 |  ;         0 - No encounters marked / bad input
 | 
|---|
 | 111 |  ;Notes  : Encounters that are not contained in the Transmitted
 | 
|---|
 | 112 |  ;         Outpatient Encounter file (#409.73) can not be
 | 
|---|
 | 113 |  ;         retransmitted
 | 
|---|
 | 114 |  ;
 | 
|---|
 | 115 |  ;Check input
 | 
|---|
 | 116 |  S STARTDT=+$G(STARTDT)
 | 
|---|
 | 117 |  Q:('STARTDT)
 | 
|---|
 | 118 |  S ENDDT=+$G(ENDDT)
 | 
|---|
 | 119 |  Q:('ENDDT)
 | 
|---|
 | 120 |  ;Declare variables
 | 
|---|
 | 121 |  N XMITPTR,ENCPTR,DELPTR,ENCDATE,EVNTDATE,DELCNT,ENCCNT,STOP,LOOP
 | 
|---|
 | 122 |  S STOP=0
 | 
|---|
 | 123 |  ;Add one second before midnight to ending date
 | 
|---|
 | 124 |  S ENDDT=ENDDT+.235959
 | 
|---|
 | 125 |  ;Find all deleted encounters that fall in date range
 | 
|---|
 | 126 |  S ENCDATE=STARTDT-.000001
 | 
|---|
 | 127 |  S DELCNT=0
 | 
|---|
 | 128 |  F LOOP=1:1 S ENCDATE=+$O(^SD(409.74,"B",ENCDATE)) Q:(('ENCDATE)!(ENCDATE>ENDDT))  D  Q:(STOP)
 | 
|---|
 | 129 |  .;Check for request to stop
 | 
|---|
 | 130 |  .I ('(LOOP#10)) S STOP=$$S^%ZTLOAD(DELCNT_" encounters have been marked for retransmission") Q:(STOP)
 | 
|---|
 | 131 |  .S DELPTR=0
 | 
|---|
 | 132 |  .F  S DELPTR=+$O(^SD(409.74,"B",ENCDATE,DELPTR)) Q:('DELPTR)  D
 | 
|---|
 | 133 |  ..;Find entry in Transmitted Outpatient Encounter file
 | 
|---|
 | 134 |  ..S XMITPTR=+$O(^SD(409.73,"ADEL",DELPTR,0))
 | 
|---|
 | 135 |  ..;Entry not found - don't retransmit
 | 
|---|
 | 136 |  ..Q:('XMITPTR)
 | 
|---|
 | 137 |  ..;Mark entry for retransmission
 | 
|---|
 | 138 |  ..D STREEVNT^SCDXFU01(XMITPTR,0)
 | 
|---|
 | 139 |  ..;Turn on transmission flag
 | 
|---|
 | 140 |  ..D XMITFLAG^SCDXFU01(XMITPTR)
 | 
|---|
 | 141 |  ..;Increment count of deleted encounters marked
 | 
|---|
 | 142 |  ..S DELCNT=DELCNT+1
 | 
|---|
 | 143 |  ;Task was asked to stop - abort
 | 
|---|
 | 144 |  Q:(STOP) DELCNT_"^^"_DELCNT_"^1"
 | 
|---|
 | 145 |  ;Find all encounters that fall in date range
 | 
|---|
 | 146 |  S ENCCNT=0
 | 
|---|
 | 147 |  S ENCDATE=STARTDT-.000001
 | 
|---|
 | 148 |  F LOOP=1:1 S ENCDATE=+$O(^SCE("B",ENCDATE)) Q:(('ENCDATE)!(ENCDATE>ENDDT))  D  Q:(STOP)
 | 
|---|
 | 149 |  .;Check for request to stop
 | 
|---|
 | 150 |  .I ('(LOOP#10)) S STOP=$$S^%ZTLOAD((ENCCNT+DELCNT)_" encounters have been marked for retransmission") Q:(STOP)
 | 
|---|
 | 151 |  .S ENCPTR=0
 | 
|---|
 | 152 |  .F  S ENCPTR=+$O(^SCE("B",ENCDATE,ENCPTR)) Q:('ENCPTR)  D
 | 
|---|
 | 153 |  ..;Find entry in Transmitted Outpatient Encounter file
 | 
|---|
 | 154 |  ..S XMITPTR=+$O(^SD(409.73,"AENC",ENCPTR,0))
 | 
|---|
 | 155 |  ..;Entry not found - don't retransmit
 | 
|---|
 | 156 |  ..Q:('XMITPTR)
 | 
|---|
 | 157 |  ..;Mark entry for retransmission
 | 
|---|
 | 158 |  ..D STREEVNT^SCDXFU01(XMITPTR,0)
 | 
|---|
 | 159 |  ..;Turn on transmission flag
 | 
|---|
 | 160 |  ..D XMITFLAG^SCDXFU01(XMITPTR)
 | 
|---|
 | 161 |  ..;Increment count of encounters marked
 | 
|---|
 | 162 |  ..S ENCCNT=ENCCNT+1
 | 
|---|
 | 163 |  ;Done
 | 
|---|
 | 164 |  Q (DELCNT+ENCCNT)_"^"_ENCCNT_"^"_DELCNT_"^"_STOP
 | 
|---|