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

PXRRPASA.m

Go to the documentation of this file.
  1. PXRRPASA ;ISL/PKR - Build and sort a list of appointments. ; 6/27/97
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;**18**;Aug 12, 1996
  1. ;
  1. SORT ;
  1. N BD,BUSY,CLINIEN,DFN,DONE,ED
  1. N IC,JC,FAC,FACILITY,FACNAM
  1. N HLOCIEN,POV,STATUS
  1. N TEMP
  1. ;
  1. ;Allow the task to be cleaned up upon successful completion.
  1. S ZTREQ="@"
  1. ;
  1. I '(PXRRQUE!$D(IO("S"))) D INIT^PXRRBUSY(.BUSY)
  1. ;
  1. ;Build a list of hospital locations to be included in the report.
  1. S TEMP=$P($G(PXRRLCSC),U,1)
  1. ;
  1. ;Check for selected hospital locations.
  1. I TEMP="HS" D
  1. . F IC=1:1:NHL D
  1. .. S HLOCIEN=$P(PXRRLCHL(IC),U,2)
  1. .. S FACILITY=$P(^SC(HLOCIEN,0),U,4)
  1. .. I $$FACCHECK(FACILITY) D
  1. ... S ^TMP(PXRRXTMP,$J,"HLOC",FACILITY,HLOCIEN)=""
  1. ;
  1. ;Check for selected clinics.
  1. I TEMP="CS" D
  1. . S IC=0
  1. . F S IC=$O(^SC(IC)) Q:+IC=0 D
  1. .. S DONE=0
  1. .. S CLINIEN=$P(^SC(IC,0),U,7)
  1. .. I +CLINIEN>0 D
  1. ... F JC=1:1:NCS Q:DONE D
  1. .... I CLINIEN=$P(PXRRCS(JC),U,2) D
  1. ..... S FACILITY=$P(^SC(IC,0),U,4)
  1. ..... I $$FACCHECK(FACILITY) S ^TMP(PXRRXTMP,$J,"HLOC",FACILITY,IC)=""
  1. ..... S DONE=1
  1. ;
  1. ;For all hospital locations or clinic stops we have to have
  1. ;all the locations in the file.
  1. I (TEMP="HA")!(TEMP="CA") D
  1. . S IC=0
  1. . F S IC=$O(^SC(IC)) Q:+IC=0 D
  1. .. S FACILITY=$P(^SC(IC,0),U,4)
  1. .. I $$FACCHECK(FACILITY) D
  1. ... S ^TMP(PXRRXTMP,$J,"HLOC",FACILITY,IC)=""
  1. ;
  1. ;Build a list of appointments for each location.
  1. S FAC=""
  1. NFAC S FAC=$O(^TMP(PXRRXTMP,$J,"HLOC",FAC))
  1. I FAC="" G APPDONE
  1. ;
  1. S HLOCIEN=""
  1. NHLOC S HLOCIEN=$O(^TMP(PXRRXTMP,$J,"HLOC",FAC,HLOCIEN))
  1. I HLOCIEN="" G NFAC
  1. ;
  1. ;If this is an interactive session let the user know that something
  1. ;is happening.
  1. ;I '(PXRRQUE!$D(IO("S"))) D SPIN^PXRRBUSY("Sorting appointments",.BUSY)
  1. ;
  1. ;Check for a user request to stop the task.
  1. I $$S^%ZTLOAD S ZTSTOP=1 D EXIT^PXRRGUT
  1. ;
  1. S BD=PXRRBADT-.0001
  1. S ED=PXRREADT+.2359
  1. NDATE S BD=$O(^SC(HLOCIEN,"S",BD))
  1. ;If we have passed the ending date we are done.
  1. I (BD>ED)!(BD="") G NHLOC
  1. ;
  1. ;If this is an interactive session let the user know that something
  1. ;is happening.
  1. I '(PXRRQUE!$D(IO("S"))) D SPIN^PXRRBUSY("Sorting appointments",.BUSY)
  1. ;
  1. ;At this point we have an appointment that can be added to the list.
  1. S IC=0
  1. F S IC=$O(^SC(HLOCIEN,"S",BD,1,IC)) Q:+IC=0 D
  1. . S DFN=$P(^SC(HLOCIEN,"S",BD,1,IC,0),U,1)
  1. . S POV=$P(^DPT(DFN,"S",BD,0),U,7)
  1. . S STATUS=$P(^DPT(DFN,"S",BD,0),U,2)
  1. . S ^XTMP(PXRRXTMP,"APPT",FAC,HLOCIEN,DFN,BD)=STATUS_U_POV
  1. ;
  1. ;Get the next appointment.
  1. G NDATE
  1. ;
  1. APPDONE ;
  1. I '(PXRRQUE!$D(IO("S"))) D DONE^PXRRBUSY("done")
  1. EXIT ;
  1. K ^TMP(PXRRXTMP)
  1. ;
  1. ;Build the list of patient activities.
  1. I PXRRQUE D
  1. .;Start the report that was queued but not scheduled.
  1. . N DESC,ROUTINE,TASK
  1. . S DESC="Patient Activity Report - patient activities"
  1. . S ROUTINE="PAT^PXRRPAPI"
  1. . S ZTDTH=$$NOW^XLFDT
  1. . S TASK=^XTMP(PXRRXTMP,"PATZTSK")
  1. . D REQUE^PXRRQUE(DESC,ROUTINE,TASK)
  1. E D PAT^PXRRPAPI
  1. Q
  1. ;
  1. ;=======================================================================
  1. FACCHECK(FAC,FACILITY) ;If FAC is on the list of facilities return true.
  1. N IC,FOUND
  1. S FOUND=0
  1. F IC=1:1:NFAC Q:FOUND D
  1. . I $P(PXRRFAC(IC),U,1)=FAC D
  1. .. S FOUND=1
  1. Q FOUND
  1. ;