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

SCDXRT01.m

Go to the documentation of this file.
  1. SCDXRT01 ;ALB/JRP - AMB CARE RETRANSMISSION ;5/9/96
  1. ;;5.3;Scheduling;**44,640**;AUG 13, 1993;Build 8
  1. ;
  1. RTRNRNG ;Mark all [Deleted] Outpatient Encounters for a user specified
  1. ; date range for retransmission to the National Ambulatory Care
  1. ; Database
  1. ;
  1. ;Input : None
  1. ;Output : None
  1. ;Note : User is prompted for the date range to retransmit
  1. ; : Encounters that are not contained in the Transmitted
  1. ; Outpatient Encounter file (#409.73) can not be
  1. ; retransmitted
  1. ; : [Deleted] Encounters that occurred before switching to new
  1. ; transmission format can not be retransmitted
  1. ; : [Deleted] Encounters that occurred within the last two days
  1. ; can not be retransmitted
  1. ;
  1. ;SD*640 Stop retransmit by date range
  1. Q
  1. ;
  1. ;Declare variables
  1. N MINDT,MAXDT,SCDXSTRT,SCDXEND,HELPTXT,X,%H,%,%I
  1. N ZTSK,ZTDESC,ZTRTN,ZTIO,ZTDTH
  1. W !!
  1. ;Cut-off date for old transmission format is earliest date
  1. ; allowed for retransmission (default to 10/1/96)
  1. S MINDT=+$P($G(^SD(404.91,1,"AMB")),"^",2)
  1. S:('MINDT) MINDT=2961001
  1. ;Today is the latest date allowed for retransmission
  1. D NOW^%DTC
  1. S MAXDT=X
  1. ;Set up help text for getting beginning and ending dates
  1. S HELPTXT("BGN")="Enter the beginning date for retransmitting encounters"
  1. S HELPTXT("END")="Enter the ending date for retransmitting encounters"
  1. ;Get beginning and ending dates
  1. S X=$$GETDTRNG^SCDXUTL1(MINDT,MAXDT,"HELPTXT(""BGN"")","HELPTXT(""END"")")
  1. ;User abort / time out
  1. Q:(X<0)
  1. W !!
  1. ;Verify that user wants to do this
  1. S SCDXSTRT=$P(X,"^",1)
  1. S SCDXEND=$P(X,"^",2)
  1. S DIR("A",1)=" "
  1. S DIR("A",2)=" "
  1. S X=(+$E(SCDXSTRT,4,5))_"/"_(+$E(SCDXSTRT,6,7))_"/"_(1700+$E(SCDXSTRT,1,3))
  1. S DIR("A",3)="All outpatient encounters that occurred between "_X
  1. S X=(+$E(SCDXEND,4,5))_"/"_(+$E(SCDXEND,6,7))_"/"_(1700+$E(SCDXEND,1,3))
  1. S DIR("A",4)="and "_X_" will be marked for retransmission to the"
  1. S DIR("A",5)="National Patient Care Database."
  1. S DIR("A",6)=" "
  1. S DIR("A",7)=" "
  1. S DIR("A")="Are you sure you want to do this ? "
  1. S DIR(0)="YA"
  1. D ^DIR
  1. ;Not verified / user abort / time out
  1. Q:('Y)
  1. ;Queue marking for retransmission
  1. S ZTRTN="TASKRX^SCDXRT01"
  1. S ZTDESC="Mark [Deleted] Outpatient Encounters for retransmission"
  1. S ZTDTH=$H
  1. S ZTIO=""
  1. S ZTSAVE("SCDXSTRT")=SCDXSTRT
  1. S ZTSAVE("SCDXEND")=SCDXEND
  1. K ZTSK D ^%ZTLOAD
  1. W:('$G(ZTSK)) !!,"** UNABLE TO QUEUE MARKING OF ENCOUNTERS FOR RETRANSMISSION **",!!
  1. W:($G(ZTSK)) !!,"Marking of encounters for retransmission queued as task number ",ZTSK
  1. W !!
  1. Q
  1. ;
  1. TASKRX ;Mark all [Deleted] Outpatient Encounters in a given date range
  1. ; for retransmission
  1. ;
  1. ;Input : SCDXSTRT - Date to begin marking encounters from
  1. ; (FileMan format) (Required)
  1. ; SCDXEND - Date to end marking encounters at
  1. ; (FileMan format) (Required)
  1. ;Output : None
  1. ;Notes : Encounters that are not contained in the Transmitted
  1. ; Outpatient Encounter file (#409.73) can not be
  1. ; retransmitted
  1. ; : This entry point should be used when marking for
  1. ; retransmission is being queued. If queued, ZTSTOP will
  1. ; be set accordingly.
  1. ;
  1. ;Check input
  1. Q:('$G(SCDXSTRT))
  1. Q:('$G(SCDXEND))
  1. ;Declare variables
  1. N JUNK
  1. ;Call module to mark entries for retransmission
  1. S JUNK=$$REXMIT(SCDXSTRT,SCDXEND)
  1. ;Set ZTSTOP accordingly
  1. S:($P(JUNK,"^",4)) ZTSTOP=1
  1. ;Done
  1. Q
  1. ;
  1. REXMIT(STARTDT,ENDDT) ;Mark all [Deleted] Outpatient Encounters in a
  1. ; given date range for retransmission
  1. ;
  1. ;Input : STARTDT - Date to begin marking encounters from
  1. ; (FileMan format) (Required)
  1. ; ENDDT - Date to end marking encounters at (FileMan format)
  1. ; (Required)
  1. ;Output : Tot^Enc^Del^Stop - Number of [deleted] encounters marked for
  1. ; retransmission
  1. ; Tot - Total number of encounters marked
  1. ; Enc - Number of existing encounters marked
  1. ; Del - Number of deleted encounters marked
  1. ; Stop - Flag indicating if task was asked to stop
  1. ; 1 = Task was asked to stop
  1. ; 0 = Task was not asked to stop
  1. ; 0 - No encounters marked / bad input
  1. ;Notes : Encounters that are not contained in the Transmitted
  1. ; Outpatient Encounter file (#409.73) can not be
  1. ; retransmitted
  1. ;
  1. ;Check input
  1. S STARTDT=+$G(STARTDT)
  1. Q:('STARTDT)
  1. S ENDDT=+$G(ENDDT)
  1. Q:('ENDDT)
  1. ;Declare variables
  1. N XMITPTR,ENCPTR,DELPTR,ENCDATE,EVNTDATE,DELCNT,ENCCNT,STOP,LOOP
  1. S STOP=0
  1. ;Add one second before midnight to ending date
  1. S ENDDT=ENDDT+.235959
  1. ;Find all deleted encounters that fall in date range
  1. S ENCDATE=STARTDT-.000001
  1. S DELCNT=0
  1. F LOOP=1:1 S ENCDATE=+$O(^SD(409.74,"B",ENCDATE)) Q:(('ENCDATE)!(ENCDATE>ENDDT)) D Q:(STOP)
  1. .;Check for request to stop
  1. .I ('(LOOP#10)) S STOP=$$S^%ZTLOAD(DELCNT_" encounters have been marked for retransmission") Q:(STOP)
  1. .S DELPTR=0
  1. .F S DELPTR=+$O(^SD(409.74,"B",ENCDATE,DELPTR)) Q:('DELPTR) D
  1. ..;Find entry in Transmitted Outpatient Encounter file
  1. ..S XMITPTR=+$O(^SD(409.73,"ADEL",DELPTR,0))
  1. ..;Entry not found - don't retransmit
  1. ..Q:('XMITPTR)
  1. ..;Mark entry for retransmission
  1. ..D STREEVNT^SCDXFU01(XMITPTR,0)
  1. ..;Turn on transmission flag
  1. ..D XMITFLAG^SCDXFU01(XMITPTR)
  1. ..;Increment count of deleted encounters marked
  1. ..S DELCNT=DELCNT+1
  1. ;Task was asked to stop - abort
  1. Q:(STOP) DELCNT_"^^"_DELCNT_"^1"
  1. ;Find all encounters that fall in date range
  1. S ENCCNT=0
  1. S ENCDATE=STARTDT-.000001
  1. F LOOP=1:1 S ENCDATE=+$O(^SCE("B",ENCDATE)) Q:(('ENCDATE)!(ENCDATE>ENDDT)) D Q:(STOP)
  1. .;Check for request to stop
  1. .I ('(LOOP#10)) S STOP=$$S^%ZTLOAD((ENCCNT+DELCNT)_" encounters have been marked for retransmission") Q:(STOP)
  1. .S ENCPTR=0
  1. .F S ENCPTR=+$O(^SCE("B",ENCDATE,ENCPTR)) Q:('ENCPTR) D
  1. ..;Find entry in Transmitted Outpatient Encounter file
  1. ..S XMITPTR=+$O(^SD(409.73,"AENC",ENCPTR,0))
  1. ..;Entry not found - don't retransmit
  1. ..Q:('XMITPTR)
  1. ..;Mark entry for retransmission
  1. ..D STREEVNT^SCDXFU01(XMITPTR,0)
  1. ..;Turn on transmission flag
  1. ..D XMITFLAG^SCDXFU01(XMITPTR)
  1. ..;Increment count of encounters marked
  1. ..S ENCCNT=ENCCNT+1
  1. ;Done
  1. Q (DELCNT+ENCCNT)_"^"_ENCCNT_"^"_DELCNT_"^"_STOP