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

BWUTLP.m

Go to the documentation of this file.
  1. BWUTLP ;IHS/CIA/DKM - User prompt APIs;21-Oct-2003 10:04;PLS
  1. ;;2.0;WOMEN'S HEALTH;**3,5,7,8,9**;MAY 16, 1996
  1. ;
  1. ; Prompt for a date range.
  1. ; .BWB Start date in FM format (returned)
  1. ; .BWE End date in FM format (returned)
  1. ; .BWPOP Abort flag (returned)
  1. ; BWBDF Default begin date (optional)
  1. ; BWEDF Default end date (optional)
  1. ; BWSAME If nonzero, default end date is begin date (optional)
  1. ; BWTIME If nonzero, ask for time (optional)
  1. ;
  1. ASKDATES(BWB,BWE,BWPOP,BWBDF,BWEDF,BWSAME,BWTIME) ; EP
  1. N BWOPT
  1. W !!," *** Date Range Selection ***"
  1. S BWPOP=0,BWOPT=$S($G(BWTIME):"T",1:"")
  1. S BWB=$$ASKDATE(" Begin with DATE: ",.BWBDF,,BWOPT)
  1. S:'BWPOP BWE=$$ASKDATE(" End with DATE: ",$S($G(BWSAME):BWB,$G(BWEDF):BWEDF,1:""),BWB,BWOPT)
  1. Q
  1. ; Prompt for single date date
  1. ; BWPMT = Prompt
  1. ; BWDFL = Default value (optional)
  1. ; BWMIN = Minimum value (optional)
  1. ; BWOPT = Additional options (optional)
  1. ASKDATE(BWPMT,BWDFL,BWMIN,BWOPT) ;
  1. N %DT,Y
  1. S %DT="APEX"_$G(BWOPT)
  1. S %DT("A")=BWPMT
  1. S:$G(BWMIN) %DT(0)=BWMIN
  1. I $G(BWDFL) D
  1. .S Y=BWDFL
  1. .D DD^%DT
  1. .S %DT("B")=Y
  1. D ^%DT
  1. S:Y<0 BWPOP=1
  1. Q Y
  1. ; Record locked
  1. LOCKED D SHOWDLG(-4)
  1. Q
  1. ; Locked pregnancy log entry
  1. LOCKEDE D SHOWDLG(-3)
  1. Q
  1. ; Locked pap log entry
  1. LOCKEDP D SHOWDLG(-2)
  1. Q
  1. ;
  1. ; DIR call for Y/N response
  1. DIRYN(BWPMT,BWDFL,BWHLP,BWPOP) ; EP
  1. N Y
  1. S Y=$$DIR("YO",.BWPMT,.BWDFL,.BWHLP,.BWPOP)
  1. ;IHS exemption approved on 10/20/2003
  1. Q:$Q Y
  1. Q
  1. ;
  1. ; Paramerized DIR call
  1. DIR(BWDTP,BWPMT,BWDFL,BWHLP,BWPOP,BWSCN) ; EP
  1. N DIR,DTOUT,DUOUT,Y
  1. S DIR(0)=BWDTP,DIR("B")=$G(BWDFL)
  1. I '$G(BWPMT) M DIR("A")=BWPMT
  1. E D GETTEXT(BWPMT,$NA(DIR("A")))
  1. I '$G(BWHLP) M DIR("?")=BWHLP
  1. E D GETTEXT(BWHLP,$NA(DIR("?")))
  1. S:$L($G(BWSCN)) DIR("S")=BWSCN
  1. D ^DIR
  1. S:$D(DUOUT)!$D(DTOUT) BWPOP=1
  1. ;IHS exemption approved on 10/20/2003
  1. Q:$Q Y
  1. Q
  1. ; Pause for user input
  1. DIRZ ; EP
  1. D DIR("E",,,,.BWPOP)
  1. Q
  1. ; Display dialog text
  1. ; BWDG = Dialog index (negative value causes pause)
  1. SHOWDLG(BWDG) ; EP
  1. Q:$D(BWSILENT)!$D(ZTQUEUED)
  1. N BWX
  1. D GETTEXT(BWDG,"BWX")
  1. S BWX=0
  1. W:$X !
  1. F S BWX=$O(BWX(BWX)) Q:'BWX W BWX(BWX),!
  1. D:BWDG<0 DIRZ
  1. Q
  1. ; Load dialog text into array
  1. ; BWDG = Dialog index^optional parameters
  1. ; BWAR = Array to receive text
  1. GETTEXT(BWDG,BWAR) ;
  1. N BWPM
  1. K @BWAR
  1. F X=2:1:$L(BWDG,U) S BWPM(X-1)=$P(BWDG,U,X)
  1. S BWDG=$S(BWDG<0:-BWDG,1:+BWDG)
  1. D BLD^DIALOG(BWDG/1000+9002086,.BWPM,,BWAR)
  1. Q
  1. ;
  1. ; Prompt for entry from file
  1. ; BWFILE = File #
  1. ; BWPMPT = Prompt
  1. GETIEN(BWFILE,BWPMPT) ; EP
  1. N DIC,BWD,Y
  1. S BWD=$$GET1^DIQ(BWFILE,$$FIND1^DIC(BWFILE,,," "),.01)
  1. S DIC=BWFILE,DIC(0)="AE",DIC("A")=$G(BWPMPT),DIC("B")=BWD
  1. D ^DIC
  1. S:Y'>0 BWPOP=1
  1. Q +Y
  1. ; Select one or more items from a file or set of codes
  1. ; BWITEM = Item descriptor (start with "-" if exclusion)
  1. ; BWFILE = File #
  1. ; BWARRY = Array name to receive selections
  1. ; BWSCRN = Optional screen
  1. ; BWDFLT = Optional default value
  1. ; BWFLD = If target lookup is a set, pass the field # for the set
  1. ; BWASK = Optional flag to issue Y/N prompt (default = 1)
  1. SELECT(BWITEM,BWFILE,BWARRY,BWSCRN,BWDFLT,BWPOP,BWFLD,BWASK) ; EP
  1. N BWITEMS,BWDONE,BWIE
  1. I '$D(BWITEM)!'$G(BWFILE)!'$D(BWARRY) S BWPOP=1 Q
  1. I $E(BWITEM)="-" S $E(BWITEM)="",BWIE="excluded from"
  1. E S BWIE="included in"
  1. S BWITEMS=$S("Yy"[$E(BWITEM,$L(BWITEM)):$E(BWITEM,1,$L(BWITEM)-1)_"ies",1:BWITEM_"s"),BWDONE=0,BWASK=$G(BWASK,1)
  1. K @BWARRY
  1. F D Q:BWPOP!BWDONE
  1. .N DIC,Y,BWX
  1. .S:BWASK BWDONE=$$DIRYN(14_U_BWITEMS,"YES",13_U_BWITEMS,.BWPOP)
  1. .Q:BWPOP!BWDONE
  1. .D SHOWDLG(15_U_BWITEM_U_BWIE)
  1. .I $G(BWFLD) D
  1. ..F D Q:Y<1
  1. ...S Y=+$$DIR(BWFILE_","_BWFLD_"O","Select "_BWITEM,.BWDFLT,,.BWPOP,.BWSCRN)
  1. ...S:Y>0 @BWARRY@(Y)=""
  1. .E D
  1. ..S DIC(0)="QEMA",DIC=BWFILE,DIC("A")="Select "_BWITEM_": "
  1. ..S:$D(BWDFLT) DIC("B")=BWDFLT
  1. ..S:$D(BWSCRN) DIC("S")=BWSCRN
  1. ..F D ^DIC K DIC("B") Q:Y<0 S @BWARRY@(+Y)=""
  1. .D SHOWDLG($S($D(@BWARRY):17,1:16)_U_BWITEMS_U_BWIE)
  1. .S BWX=""
  1. .F S BWX=$O(@BWARRY@(BWX)) Q:'$L(BWX) D
  1. ..I $G(BWFLD) W ?5,$$EXTERNAL^DILFD(BWFILE,BWFLD,,BWX),!
  1. ..E W ?5,$$GET1^DIQ(BWFILE,BWX,.01),!
  1. .W !
  1. .S BWDONE=$$DIRYN("Is this correct","YES",,.BWPOP)
  1. .I 'BWDONE D
  1. ..K @BWARRY
  1. ..D:'BWPOP SHOWDLG(18_U_BWITEMS)
  1. Q