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

SDAMN.m

Go to the documentation of this file.
  1. SDAMN ;ALB/MJK - No-Show Appt Action ; 2/4/92
  1. ;;5.3;Scheduling;**478,1012,1015**;Aug 13, 1993;Build 21
  1. ;IHS/ANMC/LJF 11/09/2000 added extra check before changing checked in
  1. ; appt to no-show
  1. ;
  1. ;cmi/flag/maw 06/02/2010 PATCH 1012 RQMT149 added for list view
  1. ;
  1. EN ; -- protocol SDAM APPT NO-SHOW entry pt
  1. ; input: VALMY := array entries
  1. ;
  1. N VALMY,SDI,SDAT,SDTIME,SDNSACT,DFN,SDCL,SDT,SDSTB,SDSTA,SDSTOP
  1. S VALMBCK="",(SDNSACT,SDSTOP)=0
  1. D SEL^VALM2 G ENQ:'$O(VALMY(0))
  1. D FULL^VALM1 S VALMBCK="R",SDI=0
  1. F S SDI=$O(VALMY(SDI)) Q:'SDI I $D(^TMP("SDAMIDX",$J,SDI)) K SDAT S SDAT=^(SDI) D Q:SDSTOP
  1. .I $P(SDAT,U,6)]"" W !!,*7,">>> This is not a valid appointment." D PAUSE^VALM1 S SDSTOP=1 Q ;cmi/maw 6/2/2010 PATCH 1012 for list view
  1. .D NOW^%DTC S SDTIME=%
  1. .W !,^TMP("SDAM",$J,+SDAT,0),!
  1. .S DFN=+$P(SDAT,U,2),SDT=+$P(SDAT,U,3),SDCL=+$P(SDAT,U,4)
  1. .S SDSTB=$$STATUS^SDAM1(DFN,SDT,SDCL,$G(^DPT(DFN,"S",SDT,0))) ; before status
  1. .Q:'$$CHK
  1. .I $P(SDSTB,";",3)["CHECKED" Q:$$READ^BDGF("YO","Already Checked In. Sure you want to enter No-Show","NO")'=1 ;IHS/ANMC/LJF 11/09/2000
  1. .S SDSTOP=$$NS(DFN,SDT,SDCL,SDTIME,.SDNSACT)
  1. .S SDSTA=$$STATUS^SDAM1(DFN,SDT,SDCL,$G(^DPT(DFN,"S",SDT,0))) ; after status
  1. .I 'SDNSACT,'$$UPD(SDSTB,SDSTA,SDAT,$G(CNSTLNK)) S SDNSACT=2
  1. ; values for SDNSACT : 0 = no re-build
  1. ; 1 = re-build because of re-book
  1. ; 2 = re-build because after not for list
  1. I SDNSACT,SDAMTYP="P" D BLD^SDAM1
  1. I SDNSACT,SDAMTYP="C" D BLD^SDAM3
  1. ENQ Q
  1. ;
  1. NS(DFN,SDT,SC,SDTIME,SDNSACT) ; execute no-show code
  1. ; input: DFN := pt file ifn
  1. ; SDT := d/t of appt
  1. ; SC := clinic ifn
  1. ; SDTIME := now
  1. ; SDNSACT := ns processing flag
  1. ; [return] := did user uparrow [ 0|no , 1|yes]
  1. ;
  1. N SDI,SDCP,SDYES,SDINP,SDLT1,SDLT,SDDT,SDMSG,A,L,I,SDV1,SDCL
  1. K ^UTILITY($J)
  1. D LO^DGUTL S SDLT1="",SDYES="",SDDT=DT,I=SDT,SDT=$P(I,".")
  1. S SDMSG=" DOES NOT HAVE A NO-SHOW LETTER ASSIGNED TO IT!"
  1. S SDV1=$O(^DG(40.8,0)) D DIV^SDUTL I $T S SDV1=$P($G(^SC(SC,0)),U,15)
  1. D EN1^SDN,73^SDN,PAUSE^VALM1
  1. NSQ Q 'Y
  1. ;
  1. CHK() ; -- check if status of appt permits no-show
  1. N SDOK S SDOK=1
  1. I '$D(^SD(409.63,"ANS",1,+SDSTB)) S SDOK=0,X="You cannot execute no-show processing for this appointment."
  1. I SDOK,SDT>SDTIME S SDOK=1,X="It is too soon to no-show this appointment."
  1. I 'SDOK W !!,*7,X K VALMY(SDI) D PAUSE^VALM1
  1. Q SDOK
  1. ;
  1. UPD(BEFORE,AFTER,SDAT,CNST) ; can just the 1 display line be changed w/o re-build
  1. ; input: BEFORE := before status info in $$STATUS format
  1. ; AFTER := after " " " " "
  1. ; SDAT := selected VALMY entry's data
  1. ; CNST := consult status (null, consult link ien)
  1. N Y S Y=0
  1. I +BEFORE=+AFTER S Y=1 G UPDQ
  1. I $D(SDAMLIST(+AFTER)) S Y=1 I $D(SDAMLIST("SCR")) X SDAMLIST("SCR") S Y=$T
  1. I 'Y,$P(SDAMLIST,U)="ALL" S Y=1
  1. I Y D
  1. . S ^TMP("SDAM",$J,+SDAT,0)=$$SETFLD^VALM1($P(AFTER,";",3),^TMP("SDAM",$J,+SDAT,0),"STAT")
  1. . ;ihs/cmi/maw 02/27/2011 patch 1015 no consult in IHS
  1. . ;I '$G(CNST) S ^TMP("SDAM",$J,+SDAT,0)=$$SETFLD^VALM1(" ",^TMP("SDAM",$J,+SDAT,0),"CONSULT")
  1. UPDQ Q Y