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

BSDX34.m

Go to the documentation of this file.
  1. BSDX34 ; IHS/OIT/HMW/MSC/SAT - WINDOWS SCHEDULING RPCS ;
  1. ;;3.0;IHS WINDOWS SCHEDULING;;DEC 09, 2010
  1. ;
  1. ;
  1. Q
  1. ;
  1. RBCLIND(BSDXY,BSDXCLST,BSDXBEG,BSDXEND) ;EP
  1. ;Entry point for debugging
  1. ;
  1. ;D DEBUG^%Serenji("RBCLIN^BSDX34(.BSDXY,BSDXCLST,BSDXBEG,BSDXEND)")
  1. Q
  1. ;
  1. RBERR ;
  1. ;Called from RBCLIN on error to set up header
  1. K ^BSDXTMP($J)
  1. S ^BSDXTMP($J,0)="T00030Name^D00020DOB^T00030Sex^T00030HRN^D00030NewApptDate^T00030Clinic^T00030TypeStatus^I00010RESOURCEID"
  1. S ^BSDXTMP($J,0)=^(0)_"^T00030APPT_MADE_BY^D00020DATE_APPT_MADE^T00250NOTE^T00030STREET^T00030CITY^T00030STATE^T00030ZIP^T00030HOMEPHONE^D00030OldApptDate"_$C(30)
  1. D ERR(999)
  1. Q
  1. ;
  1. CANCLIN(BSDXY,BSDXCLST,BSDXBEG,BSDXEND) ;EP
  1. ;
  1. ;Return recordset of CANCELLED patient appointments
  1. ;between dates BSDXBEG and BSDXEND for each clinic in BSDXCLST.
  1. ;Used in generating cancellation letters for a clinic
  1. ;BSDXCLST is a |-delimited list of BSDX RESOURCE iens. (The last |-piece is null, so discard it.)
  1. ;BSDXBEG and BSDXEND are in external date form.
  1. ;Called by BSDX CANCEL CLINIC LIST
  1. N BSDXCAN
  1. S BSDXCAN=1
  1. D RBCLIN(.BSDXY,BSDXCLST,BSDXBEG,BSDXEND)
  1. ;
  1. Q
  1. ;
  1. RBCLIN(BSDXY,BSDXCLST,BSDXBEG,BSDXEND) ;EP
  1. ;
  1. ;Return recordset of rebooked patient appointments
  1. ;between dates BSDXBEG and BSDXEND for each clinic in BSDXCLST.
  1. ;Used in generating rebook letters for a clinic
  1. ;BSDXCLST is a |-delimited list of BSDX RESOURCE iens. (The last |-piece is null, so discard it.)
  1. ;BSDXBEG and BSDXEND are in external date form.
  1. ;Called by BSDX REBOOK CLINIC LIST and BSDX CANCEL CLINIC LIST via entry point CANCLIN above
  1. ;
  1. ;
  1. S X="RBERR^BSDX34",@^%ZOSF("TRAP")
  1. ;
  1. S BSDXY="^BSDXTMP("_$J_")"
  1. N %DT,Y,BSDXJ,BSDXCID,BSDXCLN,BSDXSTRT,BSDXAID,BSDXNOD,BSDXLIST,BSDX,BSDY
  1. ;Convert beginning and ending dates
  1. ;
  1. S X=BSDXBEG,%DT="XT" D ^%DT S BSDXBEG=$P(Y,"."),BSDXBEG=BSDXBEG-1,BSDXBEG=BSDXBEG_".9999"
  1. I Y=-1 D RBERR(1) Q
  1. S X=BSDXEND,%DT="XT" D ^%DT S BSDXEND=$P(Y,"."),BSDXEND=BSDXEND_".9999"
  1. I Y=-1 D RBERR(1) Q
  1. I BSDXCLST="" D RBERR(1) Q
  1. ;
  1. ;
  1. ;If BSDXCLST is a list of resource NAMES, look up each name and convert to IEN
  1. F BSDXJ=1:1:$L(BSDXCLST,"|")-1 S BSDX=$P(BSDXCLST,"|",BSDXJ) D S $P(BSDXCLST,"|",BSDXJ)=BSDY
  1. . S BSDY=""
  1. . I BSDX]"",$D(^BSDXRES(BSDX,0)) S BSDY=BSDX Q
  1. . I BSDX]"",$D(^BSDXRES("B",BSDX)) S BSDY=$O(^BSDXRES("B",BSDX,0)) Q
  1. . Q
  1. ;
  1. ;For each clinic in BSDXCLST $O through ^BSDXAPPT("ARSRC",ResourceIEN,FMDate,ApptIEN)
  1. ;
  1. S BSDXLIST=""
  1. F BSDXJ=1:1:$L(BSDXCLST,"|")-1 S BSDXCID=$P(BSDXCLST,"|",BSDXJ) D:+BSDXCID
  1. . S BSDXCLN=$G(^BSDXRES(BSDXCID,0)) S BSDXCLN=$P(BSDXCLN,U) Q:BSDXCLN=""
  1. . S BSDXSTRT=BSDXBEG F S BSDXSTRT=$O(^BSDXAPPT("ARSRC",BSDXCID,BSDXSTRT)) Q:'+BSDXSTRT Q:BSDXSTRT>BSDXEND D
  1. . . S BSDXAID=0 F S BSDXAID=$O(^BSDXAPPT("ARSRC",BSDXCID,BSDXSTRT,BSDXAID)) Q:'+BSDXAID D
  1. . . . S BSDXNOD=$G(^BSDXAPPT(BSDXAID,0))
  1. . . . I $D(BSDXCAN) D Q
  1. . . . . I $P(BSDXNOD,U,12) S BSDXLIST=BSDXLIST_BSDXAID_"|" ;Cancelled appt
  1. . . . I $P(BSDXNOD,U,11) S BSDXLIST=BSDXLIST_BSDXAID_"|" ;Rebooked appt
  1. D RBLETT(.BSDXY,BSDXLIST)
  1. Q
  1. ;
  1. RBLETTD(BSDXY,BSDXLIST) ;EP
  1. ;Entry point for debugging
  1. ;
  1. ;D DEBUG^%Serenji("RBLETT^BSDX34(.BSDXY,BSDXLIST)")
  1. Q
  1. ;
  1. RBLETT(BSDXY,BSDXLIST) ;EP
  1. ;Return recordset of patient appointments used in listing
  1. ;REBOOKED appointments for a list of appointmentIDs.
  1. ;Called by rpc BSDX REBOOK LIST
  1. ;BSDXLIST is a |-delimited list of BSDX APPOINTMENT iens (the last |-piece is null)
  1. ;
  1. N BSDXI,BSDXIEN,BSDXNOD,BSDXCNID,BSDXCNOD,BSDXMADE,BSDXCLRK,BSDXNOT,BSDXQ,BSDX
  1. S BSDXY="^BSDXTMP("_$J_")"
  1. S BSDXI=0
  1. S ^BSDXTMP($J,BSDXI)="T00030Name^D00020DOB^T00030Sex^T00030HRN^D00030NewApptDate^T00030Clinic^T00030TypeStatus"
  1. S ^BSDXTMP($J,BSDXI)=^(BSDXI)_"^I00010RESOURCEID^T00030APPT_MADE_BY^D00020DATE_APPT_MADE^T00250NOTE^T00030STREET^T00030CITY^T00030STATE^T00030ZIP^T00030HOMEPHONE^D00030OldApptDate"_$C(30)
  1. S X="ERROR^BSDX34",@^%ZOSF("TRAP")
  1. ;
  1. ;Iterate through BSDXLIST
  1. S BSDXIEN=0
  1. F BSDX=1:1:$L(BSDXLIST,"|")-1 S BSDXIEN=$P(BSDXLIST,"|",BSDX) D
  1. . N BSDXNOD,BSDXAPT,BSDXCID,BSDXCNOD,BSDXCLN,BSDX44,BSDXDNOD,BSDXSTAT,BSDX,BSDXTYPE,BSDXLIN,BSDXPAT
  1. . N BSDXSTRE,BSDXCITY,BSDXST,BSDXZIP,BSDXPHON
  1. . N BSDXNAM,BSDXDOB,BSDXHRN,BSDXSEX
  1. . N BSDXREBK
  1. . S BSDXNOD=$G(^BSDXAPPT(BSDXIEN,0))
  1. . Q:BSDXNOD=""
  1. . S BSDXPAT=$P(BSDXNOD,U,5) ;PATIENT ien
  1. . Q:'+BSDXPAT
  1. . Q:'$D(^DPT(BSDXPAT))
  1. . D PINFO(BSDXPAT)
  1. . S Y=$P(BSDXNOD,U)
  1. . Q:'+Y
  1. . X ^DD("DD") S Y=$TR(Y,"@"," ")
  1. . S BSDXAPT=Y ;Appointment date time
  1. . S BSDXREBK=""
  1. . S Y=$P(BSDXNOD,U,11)
  1. . I +Y X ^DD("DD") S Y=$TR(Y,"@"," ") S BSDXREBK=Y ;Rebook date time
  1. . S BSDXCLRK=$P(BSDXNOD,U,8) ;Appointment made by
  1. . S:+BSDXCLRK BSDXCLRK=$G(^VA(200,BSDXCLRK,0)),BSDXCLRK=$P(BSDXCLRK,U)
  1. . S Y=$P(BSDXNOD,U,9) ;Date Appointment Made
  1. . I +Y X ^DD("DD") S Y=$TR(Y,"@"," ")
  1. . S BSDXMADE=Y
  1. . ;NOTE
  1. . S BSDXNOT=""
  1. . I $D(^BSDXAPPT(BSDXIEN,1,0)) S BSDXNOT="",BSDXQ=0 F S BSDXQ=$O(^BSDXAPPT(BSDXIEN,1,BSDXQ)) Q:'+BSDXQ D
  1. . . S BSDXLIN=$G(^BSDXAPPT(BSDXIEN,1,BSDXQ,0))
  1. . . S:(BSDXLIN'="")&($E(BSDXLIN,$L(BSDXLIN)-1,$L(BSDXLIN))'=" ") BSDXLIN=BSDXLIN_" "
  1. . . S BSDXNOT=BSDXNOT_BSDXLIN
  1. . ;Resource
  1. . S BSDXCID=$P(BSDXNOD,U,7) ;IEN of BSDX RESOURCE
  1. . Q:'+BSDXCID
  1. . Q:'$D(^BSDXRES(BSDXCID,0))
  1. . S BSDXCNOD=$G(^BSDXRES(BSDXCID,0)) ;BSDX RESOURCE node
  1. . Q:BSDXCNOD=""
  1. . S BSDXCLN=$P(BSDXCNOD,U) ;Text name of BSDX Resource
  1. . S BSDXTYPE="" ;Unused in this recordset
  1. . S BSDXI=BSDXI+1
  1. . S ^BSDXTMP($J,BSDXI)=BSDXNAM_"^"_BSDXDOB_"^"_BSDXSEX_"^"_BSDXHRN_"^"_BSDXREBK_"^"_BSDXCLN_"^"_BSDXTYPE_"^"_BSDXCID_"^"_BSDXCLRK_"^"_BSDXMADE_"^"_BSDXNOT_"^"_BSDXSTRE_"^"_BSDXCITY_"^"_BSDXST_"^"_BSDXZIP_"^"_BSDXPHON_"^"_BSDXAPT_$C(30)
  1. . Q
  1. ;
  1. S BSDXI=BSDXI+1
  1. S ^BSDXTMP($J,BSDXI)=$C(31)
  1. Q
  1. ;
  1. PINFO(BSDXPAT) ;
  1. ;Get patient info
  1. N BSDXNOD
  1. S BSDXNOD=$$PATINFO^BSDX27(BSDXPAT)
  1. S BSDXNAM=$P(BSDXNOD,U) ;NAME
  1. S BSDXSEX=$P(BSDXNOD,U,2) ;SEX
  1. S BSDXDOB=$P(BSDXNOD,U,3) ;DOB
  1. S BSDXHRN=$P(BSDXNOD,U,4) ;Health Record Number for location DUZ(2)
  1. S BSDXSTRE=$P(BSDXNOD,U,5) ;Street
  1. S BSDXCITY=$P(BSDXNOD,U,6) ;City
  1. S BSDXST=$P(BSDXNOD,U,7) ;State
  1. S BSDXZIP=$P(BSDXNOD,U,8) ;zip
  1. S BSDXPHON=$P(BSDXNOD,U,9) ;homephone
  1. Q
  1. ;
  1. ERROR ;
  1. D ERR("RPMS Error")
  1. Q
  1. ;
  1. ERR(ERRNO) ;Error processing
  1. S:'$D(BSDXI) BSDXI=999
  1. I +ERRNO S BSDXERR=ERRNO+134234112 ;vbObjectError
  1. E S BSDXERR=ERRNO
  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