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

BWSELECT.m

Go to the documentation of this file.
  1. BWSELECT ;IHS/ANMC/MWR - SELECT ENTRIES FROM A BWFILE ;15-Feb-2003 22:11;PLS
  1. ;;2.0;WOMEN'S HEALTH;**8**;MAY 16, 1996
  1. ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
  1. ;; UTILITY TO PROMPT FOR MULTIPLE SELECTIONS FROM A FILE AND STORE
  1. ;; THEM IN A LOCAL ARRAY FOR SOBW BY CALLING PROGRAM.
  1. ;
  1. HOSP ;---> EXAMPLE: SELECT HOSPITAL LOCATIONS.
  1. D SETVARS^BWUTL5
  1. ;---> 1ST PARAMETER=CATAGORIC NAME OF ITEMS BEING SELECTED.
  1. ;---> 2ND PARAMETER=FILE NUMBER FROM WHICH SELECTION IS MADE.
  1. ;---> 3RD PARAMETER=LOCAL ARRAY IN WHICH SELECTIONS WILL BE STORED.
  1. ;---> NOTE: THIS CANNOT BE "BWARR1" OR IT WILL KILL THE VARIBLE,
  1. ;---> BWARR1, THAT STORES THE LOCAL ARRAY NAME!
  1. ;---> 4TH PARAMETER=SCREEN USED IN SELECTION LOOKUP.
  1. ;---> 5TH PARAMETER=DEFAULT FIRST SELECTION.
  1. ;---> 6TH PARAMETER=BWPOP=1 IF QUIT OR ERROR.
  1. ;---> SCREEN WOULD BE 4TH PARAMETER.
  1. ;S BWSCRN="I $D(^SC(,""ARC"",""S"",Y))"
  1. D SELECT("clinic/ward",44,"BWLOC","","",.BWPOP)
  1. Q
  1. ;
  1. SELECT(BWITEM,BWFILE,BWARR1,BWSCRN,BWDFLT,BWPOP) ;EP
  1. N DIC,DIR,BWGBL,BWITEMS,Y
  1. I '$D(BWITEM)!('$G(BWFILE))!('$D(BWARR1)) S BWPOP=1 Q
  1. SELECT1 ;
  1. K @BWARR1
  1. S BWGBL=^DIC(BWFILE,0,"GL")
  1. ;---> IF .01 FIELD IS A POINTER, RESET GLOBAL TO GET TEXT FROM
  1. ;---> POINTED TO GLOBAL.
  1. I $E($P(^DD(BWFILE,.01,0),U,2),2)="P" S BWGBL="^"_$P(^(0),U,3)
  1. D PLURAL
  1. W ! S DIR("A")=" Include ALL "_BWITEMS_" in this listing"
  1. S DIR(0)="Y",DIR("B")="Y"
  1. S DIR("?",1)=" Answer ""YES"" to include ALL "_BWITEMS_";"
  1. S DIR("?")=" Answer ""NO"" to select one or more "_BWITEMS_"."
  1. D ^DIR K DIR
  1. I $D(DIRUT) S BWPOP=1 Q
  1. ;---> IF ALL ARE SELECTED, QUIT HERE.
  1. I Y S @(BWARR1_"(""ALL"")")="",BWPOP=0 W ! Q
  1. ;
  1. W !!?3,"Select the "_BWITEM_"(s) you wish to include in this listing."
  1. S DIC(0)="QEMA",DIC=BWFILE
  1. S 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 @(BWARR1_"(+Y)")=""
  1. I '$D(@BWARR1) D S BWPOP=1 Q
  1. .W !?3,"No ",BWITEM," selected.",! D DIRZ^BWUTL3
  1. W !!?3,"The following ",BWITEMS," will be included in this report:"
  1. W !?3 F I=1:1:48+$L(BWITEM) W "-"
  1. S N=0 F S N=$O(@(BWARR1_"(N)")) Q:'N D
  1. .W !?5,$P(@(BWGBL_"N,0)"),U)
  1. .;---> NEXT LINE WOULD BE CODE TO BUILD FOR DISPLAYING AN ADDITIONAL
  1. .;---> PIECE OF THE ZERO NODE OF THE SELECTED ENTRIES (IDENTIFIERS).
  1. .;W " - ",$P(@(BWGBL_"N,0)"),U,2)
  1. W ! S DIR(0)="Y",DIR("A")=" Is this correct",DIR("B")="Y"
  1. D ^DIR I $D(DIRUT) S BWPOP=1 Q
  1. I 'Y K @BWARR1 D G SELECT1
  1. .W " All ",BWITEMS," deleted.",!?26," * Please begin again. *"
  1. S BWPOP=0 W !
  1. Q
  1. ;
  1. PLURAL ;EP
  1. ;---> CHANGE Y TO I AND AS ES IF NECESSARY.
  1. I "Yy"[$E(BWITEM,$L(BWITEM)) D Q
  1. .S BWITEMS=$E(BWITEM,1,($L(BWITEM)-1))_"ies"
  1. S BWITEMS=BWITEM_"s"
  1. Q