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

SDES2QRYAPREQSB.m

Go to the documentation of this file.
  1. SDES2QRYAPREQSB ;ALB/BWF - QUERY APPOINTMENT REQUESTS; JAN 4,2023
  1. ;;5.3;Scheduling;**869,873,875,877,878**;Aug 13, 1993;Build 11
  1. ;;Per VHA Directive 6402, this routine should not be modified
  1. ;
  1. ; Reference to DGENA in ICR#3812
  1. ;
  1. Q
  1. FLTRAPPTREQ(REQIEN,SDINPUT,FLTRORIGDATE,FLTRPIDDATE,STARTDT,ENDDT,PRIORITYGROUP,PATSVCCONN,PATSCPERCENT,COUNT,REQCNT) ;
  1. N REQIENS,CLINICIEN,APPTREQ,WAITDAYS,DATEENTERED,PATNAME,REQSUBTYPE
  1. Q:'REQIEN
  1. S REQIENS=REQIEN_","
  1. D GETS^DIQ(409.85,REQIENS,".01;1;2;4;8;8.5;10.5;15;22;23","IE","APPTREQ")
  1. Q:$G(APPTREQ(409.85,REQIENS,23,"I"))="C"
  1. ; filter appointment sub-type
  1. S REQSUBTYPE=$G(APPTREQ(409.85,REQIENS,4,"I"))
  1. I REQSUBTYPE="" S REQSUBTYPE="UNKNOWN"
  1. I '$D(SDINPUT("FILTER","REQUEST SUBTYPE",REQSUBTYPE)),('$D(SDINPUT("FILTER","REQUEST SUBTYPE","ALL"))) Q
  1. ; check clinics
  1. S CLINICIEN=$G(APPTREQ(409.85,REQIENS,8,"I"))
  1. I $D(SDINPUT("FILTER","CLINIC")),CLINICIEN="" Q
  1. I CLINICIEN'="",$D(SDINPUT("FILTER","CLINIC")),'$D(SDINPUT("FILTER","CLINIC",CLINICIEN)) Q
  1. ; check services
  1. S STOPIEN=$G(APPTREQ(409.85,REQIENS,8.5,"I"))
  1. I $D(SDINPUT("FILTER","SERVICE")),STOPIEN="" Q
  1. I STOPIEN'="",$D(SDINPUT("FILTER","SERVICE")),'$D(SDINPUT("FILTER","SERVICE",STOPIEN)) Q
  1. ; wait time
  1. S DATEENTERED=$G(APPTREQ(409.85,REQIENS,1,"I"))
  1. I DATEENTERED<STARTDT!(DATEENTERED>ENDDT) Q
  1. ; origination date
  1. I $D(SDINPUT("FILTER","ORIGINATION DATE")),$G(APPTREQ(409.85,REQIENS,1,"I"))'=FLTRORIGDATE Q
  1. ; pid (desired) date
  1. S PIDDATE=$G(APPTREQ(409.85,REQIENS,22,"I"))
  1. I PIDDATE="" S PIDDATE="UNKNOWN"
  1. I $D(SDINPUT("FILTER","PID")),PIDDATE'=FLTRPIDDATE Q
  1. S WAITDAYS=$$FMDIFF^XLFDT(DT,$G(APPTREQ(409.85,REQIENS,1,"I")))
  1. ;
  1. S PATNAME=$G(APPTREQ(409.85,REQIENS,.01,"E"))
  1. S CLINICNAME=$G(APPTREQ(409.85,REQIENS,8,"E"))
  1. I CLINICNAME="" S CLINICNAME="UNKNOWN"
  1. ; get service related from the request itself, set to 0 if null
  1. S SERVICEREL=$G(APPTREQ(409.85,REQIENS,15,"I"))
  1. I SERVICEREL="" S SERVICEREL=0
  1. ; SCPERCENT IS CONVERTED TO THE INVERSE IN THE ORIGINAL FOR SORTING
  1. S SCPERCENT=100-$G(PATSCPERCENT)
  1. S COUNT=$G(COUNT)+1,REQCNT=$G(REQCNT)+1
  1. D SETDATA($G(SDINPUT("SORT")),PATNAME,CLINICNAME,PRIORITYGROUP,PIDDATE,DATEENTERED,"A",REQIEN,SERVICEREL,SCPERCENT,WAITDAYS,COUNT)
  1. Q
  1. ;
  1. FLTRCONSULT(CONSIEN,SDINPUT,FLTRORIGDATE,FLTRPIDDATE,STARTDT,ENDDT,PRIORITYGROUP,PATSVCCONN,PATSCPERCENT,COUNT,REQCNT) ;
  1. N CONSIENS,CONSULT,CLINICIEN,SERVICEIEN,WAITDAYS,DATEENTERED,PATNAME,CLINICNAME,SERVICEREL,PIDDATE
  1. Q:'CONSIEN
  1. S CONSIENS=CONSIEN_","
  1. D GETS^DIQ(123,CONSIENS,".01;.02;.05;.07;1;2","IE","CONSULT")
  1. ; clinics
  1. S CLINICIEN=$G(CONSULT(123,CONSIENS,2,"I"))
  1. I CLINICIEN'="",$D(SDINPUT("FILTER","CLINIC")),'$D(SDINPUT("FILTER","CLINIC",CLINICIEN)) Q
  1. ; services
  1. S SERVICEIEN=$G(CONSULT(123,CONSIENS,1,"I"))
  1. I SERVICEIEN,$D(SDINPUT("FILTER","SERVICE")) Q:'$$CHECKSERVICES^SDES2QRYAPREQSA(.SDINPUT,SERVICEIEN)
  1. ; wait time
  1. S DATEENTERED=$P($G(CONSULT(123,CONSIENS,.01,"I")),".")
  1. I DATEENTERED<STARTDT!(DATEENTERED>ENDDT) Q
  1. ; origination date
  1. I $D(SDINPUT("FILTER","ORIGINATION DATE")),$P($G(CONSULT(123,CONSIENS,.01,"I")),".")'=FLTRORIGDATE Q
  1. ; pid (desired) date - uses $$PRIO^SDES2QRYAPREQSA to determine PID date for consults
  1. S PIDDATE=$$PRIO^SDES2QRYAPREQSA(CONSIEN)
  1. I PIDDATE="" S PIDDATE=DATEENTERED
  1. I $D(SDINPUT("FILTER","PID")),PIDDATE'=FLTRPIDDATE Q
  1. ; urgency
  1. I $D(SDINPUT("FILTER","URGENCY")),$$GET1^DIQ(123,CONSIEN,5,"I")'=$G(SDINPUT("FILTER","URGENCY")) Q
  1. ;
  1. S WAITDAYS=$$FMDIFF^XLFDT(DT,DATEENTERED)
  1. S PATNAME=$G(CONSULT(123,CONSIENS,.02,"E"))
  1. I PATNAME="" S PATNAME="UNKNOWN"
  1. S CLINICNAME=$G(CONSULT(123,CONSIENS,2,"E"))
  1. I CLINICNAME="" S CLINICNAME="UNKNOWN"
  1. S SERVICEREL=$S(PRIORITYGROUP="GROUP 1":1,1:0)
  1. ; SCPERCENT IS CONVERTED TO THE INVERSE IN THE ORIGINAL FOR SORTING
  1. S SCPERCENT=100-$G(PATSCPERCENT)
  1. S COUNT=$G(COUNT)+1,REQCNT=$G(REQCNT)+1
  1. D SETDATA($G(SDINPUT("SORT")),PATNAME,CLINICNAME,PRIORITYGROUP,PIDDATE,DATEENTERED,"C",CONSIEN,SERVICEREL,SCPERCENT,WAITDAYS,COUNT)
  1. Q
  1. ;
  1. FLTRRECALL(RECALLIEN,SDINPUT,FLTRORIGDATE,FLTRPIDDATE,STARTDT,ENDDT,PRIORITYGROUP,PATSVCCONN,PATSCPERCENT,COUNT,REQCNT) ;
  1. N RECALLIENS,RECALL,CLINICIEN,STOPIEN,DATEENTERED,RECALLDATE,WAITDAYS,PATNAME,CLINICNAME,SERVICEREL,SCPERCENT
  1. S RECALLIENS=RECALLIEN_","
  1. D GETS^DIQ(403.5,RECALLIENS,".01;4.5;5;5.5;7.5","IE","RECALL")
  1. ; clinics
  1. S CLINICIEN=$G(RECALL(403.5,RECALLIENS,4.5,"I"))
  1. I CLINICIEN'="",$D(SDINPUT("FILTER","CLINIC")),'$D(SDINPUT("FILTER","CLINIC",CLINICIEN)) Q
  1. I $$GET1^DIQ(44,CLINICIEN,50.01,"I")=1 Q ;do not return if OOS? is yes
  1. ; services
  1. S STOPIEN=$$GET1^DIQ(44,CLINICIEN,8,"I")
  1. I STOPIEN,$D(SDINPUT("FILTER","SERVICE")),'$D(SDINPUT("FILTER","SERVICE",STOPIEN)) Q
  1. S DATEENTERED=$P($G(RECALL(403.5,RECALLIENS,7.5,"I")),".")
  1. I DATEENTERED="" S DATEENTERED=$G(RECALL(403.5,RECALLIENS,5,"I"))
  1. ; origination date
  1. I $D(SDINPUT("FILTER","ORIGINATION DATE")),DATEENTERED'=FLTRORIGDATE Q
  1. ; wait time
  1. S RECALLDATE=$G(RECALL(403.5,RECALLIENS,5.5,"I"))
  1. I 'RECALLDATE S RECALLDATE=$G(RECALL(403.5,RECALLIENS,5,"I"))
  1. I RECALLDATE<STARTDT!(RECALLDATE>ENDDT) Q
  1. ; pid (desired) date
  1. I $D(SDINPUT("FILTER","PID")),RECALLDATE'=FLTRPIDDATE Q
  1. S WAITDAYS=$$FMDIFF^XLFDT(DT,RECALLDATE)
  1. S PATNAME=$G(RECALL(403.5,RECALLIENS,.01,"E"))
  1. I PATNAME="" S PATNAME="UNKNOWN"
  1. S CLINICNAME=$G(RECALL(403.5,RECALLIENS,4.5,"E"))
  1. I CLINICNAME="" S CLINICNAME="UNKNOWN"
  1. S SERVICEREL=PATSVCCONN
  1. ; SCPERCENT IS CONVERTED TO THE INVERSE OF THE ORIGINAL FOR SORTING
  1. S SCPERCENT=100-PATSCPERCENT
  1. S COUNT=$G(COUNT)+1,REQCNT=$G(REQCNT)+1
  1. D SETDATA($G(SDINPUT("SORT")),PATNAME,CLINICNAME,PRIORITYGROUP,RECALLDATE,DATEENTERED,"R",RECALLIEN,SERVICEREL,SCPERCENT,WAITDAYS,COUNT)
  1. Q
  1. ; set data into ^TMP for final processing
  1. SETDATA(SORT,PATNAME,CLINICNAME,PRIOGROUP,DESIREDDATE,ORIGDATE,REQTYPE,REQIEN,SERVICEREL,SCPERCENT,WAITDAYS,COUNT) ;
  1. ;
  1. I $G(SORT)="DEFAULT" D
  1. .S ^TMP("SDES2QUERY",$J,"DATA",PRIOGROUP,'SERVICEREL,DESIREDDATE,ORIGDATE,REQIEN)=REQTYPE
  1. I $G(SORT)="PRIORITY GROUP" D
  1. .S ^TMP("SDES2QUERY",$J,"DATA",PRIOGROUP,'SERVICEREL,DESIREDDATE,ORIGDATE,REQIEN)=REQTYPE
  1. I $G(SORT)="PATIENT NAME" D
  1. .I PATNAME="" S PATNAME="**MISSING PATIENT NAME**"
  1. .S ^TMP("SDES2QUERY",$J,"DATA",PATNAME,REQIEN)=REQTYPE
  1. I $G(SORT)="CLINIC" D
  1. .I CLINICNAME="" S CLINICNAME="**MISSING CLINIC NAME**"
  1. .S ^TMP("SDES2QUERY",$J,"DATA",CLINICNAME,REQIEN)=REQTYPE
  1. I $G(SORT)="REQUEST" D
  1. .S ^TMP("SDES2QUERY",$J,"DATA",REQTYPE,REQIEN)=REQTYPE
  1. I $G(SORT)="WAIT TIME" D
  1. .S ^TMP("SDES2QUERY",$J,"DATA",WAITDAYS,REQIEN)=REQTYPE
  1. I $G(SORT)="ORIGINATION DATE" D
  1. .S ^TMP("SDES2QUERY",$J,"DATA",ORIGDATE,REQIEN)=REQTYPE
  1. I $G(SORT)="PID DATE" D
  1. .S ^TMP("SDES2QUERY",$J,"DATA",DESIREDDATE,REQIEN)=REQTYPE
  1. I $G(SORT)="SERVICE RELATED" D
  1. .S ^TMP("SDES2QUERY",$J,"DATA",SERVICEREL,REQIEN)=REQTYPE
  1. I $G(SORT)="SCVISIT" D
  1. .S ^TMP("SDES2QUERY",$J,"DATA",SCPERCENT,REQIEN)=REQTYPE
  1. S ^TMP("SDES2QUERY",$J,"COUNT")=COUNT
  1. Q
  1. ;
  1. GETPATENR(DFN,PRIORITYGROUP,CURRENTENR,PATSVCCONN,PATSCPERCENT) ;
  1. N ENRRET
  1. Q:'DFN
  1. S PRIORITYGROUP=$$PRIORITY^DGENA(DFN)
  1. ; default group to 0 if undefined
  1. I PRIORITYGROUP="" S PRIORITYGROUP=0
  1. ; Set service connected and service connected percent to 0
  1. S (PATSVCCONN,PATSCPERCENT)=0
  1. S CURRENTENR=$$FINDCUR^DGENA(DFN)
  1. I CURRENTENR'="" D
  1. .D GET^DGENA(CURRENTENR,.ENRRET)
  1. .S PATSVCCONN=$G(ENRRET("ELIG","SC"))
  1. .S PATSVCCONN=$S(PATSVCCONN="Y":1,1:0)
  1. .S PATSCPERCENT=$G(ENRRET("ELIG","SCPER"))
  1. .S PATSCPERCENT=$S(PATSCPERCENT'="":PATSCPERCENT,1:0)
  1. Q