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

BSDX36.m

Go to the documentation of this file.
  1. BSDX36 ; IHS/OIT/HMW/MSC/SAT - WINDOWS SCHEDULING RPCS ;
  1. ;;3.0;IHS WINDOWS SCHEDULING;;DEC 09, 2010
  1. ;
  1. ;COLLECT WAITLIST FOR GIVEN RESOURCE - RPC
  1. CW(BSDXY,BSDXRES) ;COLLECT WAITLIST DATA
  1. ; .BSDXY = returned pointer to list of waitlist data
  1. ; BSDXRES = resource code - pointer to ^BSDXRES (BSDX RESOURCE)
  1. ; called by BSDX WAITLIST remote procedure
  1. N BSDXI,BSDXNOD,BSDXRESN,BSDXSC,BSDXTMP,BSDWL,BSDXWLD,BSDXWLN,CI,WL
  1. D ^XBKVAR S X="ERROR^BSDX36",@^%ZOSF("TRAP")
  1. S BSDXI=0
  1. K ^BSDXTMP($J)
  1. S BSDXY="^BSDXTMP("_$J_")"
  1. S ^BSDXTMP($J,0)="T00020ERRORID"_$C(30)
  1. ;check for valid resource
  1. I '+BSDXRES D ERR("BSDX36: Invalid Resource ID") Q
  1. I '$D(^BSDXRES(BSDXRES,0)) D ERR("BSDX36: Invalid Resource ID") Q
  1. S BSDXNOD=^BSDXRES(BSDXRES,0)
  1. S BSDXSC=$P(BSDXNOD,U,4)
  1. ;check that hospital location is defined for this resource
  1. I '+BSDXSC D ERR("BSDX36: Resource "_$P(BSDXNOD,U,1)_" does not have a Hospital Location defined") Q
  1. I '$D(^SC(BSDXSC,0)) D ERR("BSDX36: Resource "_$P(BSDXNOT,U,1)_" has an invalid Hospital Location defined") Q
  1. ;GET WL POINTER FROM ^BSDWL("B",SC,WL)
  1. S BSDWL=$O(^BSDWL("B",BSDXSC,""))
  1. S BSDXWLD=$G(^BSDWL(BSDWL,0))
  1. ;check if wait list is inactive
  1. I $P(BSDXWLD,U,2) D ERR("BSDX36: WaitList for "_$P(^SC(BSDXSC,0),U,1)_" is inactive") Q
  1. ; 1 2 3 4 5
  1. S BSDXTMP="I00020HOSPITAL_LOC_IEN^I00020WAIT_LIST_IEN^I00020PATIENT_IEN^T00030PATIENT_NAME^T00030HOME_PHONE^"
  1. ; 6 7 8 9 10 11
  1. S BSDXTMP=BSDXTMP_"T00020WORK_PHONE^T00030CHART^D00020DATE_ADDED^T00030REASON^T00020PRIORITY^I00020PROVIDER^"
  1. ; 12 13
  1. S BSDXTMP=BSDXTMP_"D00020RECALL_DATE^T00250COMMENT"_$C(30)
  1. S ^BSDXTMP($J,0)=BSDXTMP
  1. ;loop through waitlist
  1. ;RETURN LOOKS LIKE:
  1. ; BSDXTMP(<counter>,"C",<c counter>)=Comment text
  1. S WL=0
  1. F S WL=$O(^BSDWL(BSDWL,1,WL)) Q:(WL="")||('WL) D
  1. . S BSDXWLN=$G(^BSDWL(BSDWL,1,WL,0))
  1. . S DFN=$P(BSDXWLN,U,1)
  1. . S DPTN=$G(^DPT(DFN,.13))
  1. . S BSDXI=BSDXI+1
  1. . ; 1 2 3 4 5
  1. . S BSDXTMP=BSDXSC_U_WL_U_$P(BSDXWLN,U,1)_U_$P(^DPT($P(BSDXWLN,U,1),0),U,1)_U_$P(DPTN,U,1)_U
  1. . ; 6 7 8
  1. . S BSDXTMP=BSDXTMP_$P(DPTN,U,2)_U_$$HRCN^BDGF2(DFN,+$$FAC^BSDU(BSDXSC))_U_$$FMTE^XLFDT($P(BSDXWLN,U,3))_U
  1. . ; 9 10
  1. . S BSDXTMP=BSDXTMP_$P(^BSDWLR($P(BSDXWLN,U,9),0),U,1)_U_$S($P(BSDXWLN,U,2)=1:"HIGH",$P(BSDXWLN,U,2)=2:"MIDDLE",$P(BSDXWLN,U,2)=3:"LOW",1:"")_U
  1. . ; 11 12 13
  1. . S BSDXTMP=BSDXTMP_$P(^VA(200,$P(BSDXWLN,U,6),0),U,1)_U_$$FMTE^XLFDT($P(BSDXWLN,U,5))_U_$G(^BSDWL(BSDWL,1,WL,1,1,0))
  1. . S ^BSDXTMP($J,BSDXI)=BSDXTMP
  1. . S CI=""
  1. . F S CI=$O(^BSDWL(BSDWL,1,WL,1,CI)) Q:'+CI D
  1. . . S BSDWLN=$G(^BSDWL(BSDWL,1,WL,1,CI,0))
  1. . . S:$E(BSDWLN,$L(BSDWLN)-1,$L(BSDWLN))'=" " BSDWLN=BSDWLN_" "
  1. . . S BSDXI=BSDXI+1
  1. . . S ^BSDXTMP($J,BSDXI)=BSDWLN
  1. . S BSDXI=BSDXI+1
  1. . S ^BSDXTMP($J,BSDXI)=$C(30)
  1. S BSDXI=BSDXI+1
  1. S ^BSDXTMP($J,BSDXI)=$C(31)
  1. Q
  1. ;
  1. ERROR ;
  1. D ERR("RPMS Error")
  1. Q
  1. ;
  1. ERR(BSDXERR) ;Error processing
  1. I +BSDXERR S BSDXERR=ERRNO+134234112 ;vbObjectError
  1. S BSDXI=BSDXI+1
  1. S ^BSDXTMP($J,BSDXI)=BSDXERR_$C(30)
  1. S BSDXI=BSDXI+1
  1. S ^BSDXTMP($J,BSDXI)=$C(31)
  1. Q