| 1 | WVSELECT ;HCIOFO/FT,JR IHS/ANMC/MWR - SELECT ENTRIES FROM A WVFILE ;
 | 
|---|
| 2 |  ;;1.0;WOMEN'S HEALTH;;Sep 30, 1998
 | 
|---|
| 3 |  ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
 | 
|---|
| 4 |  ;;  UTILITY TO PROMPT FOR MULTIPLE SELECTIONS FROM A FILE AND STORE
 | 
|---|
| 5 |  ;;  THEM IN A LOCAL ARRAY FOR SOWV BY CALLING PROGRAM.
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | HOSP ;---> EXAMPLE: SELECT HOSPITAL LOCATIONS.
 | 
|---|
| 8 |  D SETVARS^WVUTL5
 | 
|---|
| 9 |  ;---> 1ST PARAMETER=CATAGORIC NAME OF ITEMS BEING SELECTED.
 | 
|---|
| 10 |  ;---> 2ND PARAMETER=FILE NUMBER FROM WHICH SELECTION IS MADE.
 | 
|---|
| 11 |  ;---> 3RD PARAMETER=LOCAL ARRAY IN WHICH SELECTIONS WILL BE STORED.
 | 
|---|
| 12 |  ;--->     NOTE: THIS CANNOT BE "WVARR1" OR IT WILL KILL THE VARIBLE,
 | 
|---|
| 13 |  ;--->           WVARR1, THAT STORES THE LOCAL ARRAY NAME!
 | 
|---|
| 14 |  ;---> 4TH PARAMETER=SCREEN USED IN SELECTION LOOKUP.
 | 
|---|
| 15 |  ;---> 5TH PARAMETER=DEFAULT FIRST SELECTION.
 | 
|---|
| 16 |  ;---> 6TH PARAMETER=WVPOP=1 IF QUIT OR ERROR.
 | 
|---|
| 17 |  ;---> SCREEN WOULD BE 4TH PARAMETER.
 | 
|---|
| 18 |  ;S WVSCRN="I $D(^SC(,""ARC"",""S"",Y))"
 | 
|---|
| 19 |  D SELECT("clinic/ward",44,"WVLOC","","",.WVPOP)
 | 
|---|
| 20 |  Q
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 | SELECT(WVITEM,WVFILE,WVARR1,WVSCRN,WVDFLT,WVPOP) ;EP
 | 
|---|
| 23 |  N DIC,DIR,WVGBL,WVITEMS,Y
 | 
|---|
| 24 |  I '$D(WVITEM)!('$G(WVFILE))!('$D(WVARR1)) S WVPOP=1 Q
 | 
|---|
| 25 | SELECT1 ;
 | 
|---|
| 26 |  K @WVARR1
 | 
|---|
| 27 |  S WVGBL=^DIC(WVFILE,0,"GL")
 | 
|---|
| 28 |  ;---> IF .01 FIELD IS A POINTER, RESET GLOBAL TO GET TEXT FROM
 | 
|---|
| 29 |  ;---> POINTED TO GLOBAL.
 | 
|---|
| 30 |  I $E($P(^DD(WVFILE,.01,0),U,2),2)="P" S WVGBL="^"_$P(^(0),U,3)
 | 
|---|
| 31 |  D PLURAL
 | 
|---|
| 32 |  W ! S DIR("A")="   Include ALL "_WVITEMS_" in this listing"
 | 
|---|
| 33 |  S DIR(0)="Y",DIR("B")="Y"
 | 
|---|
| 34 |  S DIR("?",1)="     Answer ""YES"" to include ALL "_WVITEMS_";"
 | 
|---|
| 35 |  S DIR("?")="     Answer ""NO"" to select one or more "_WVITEMS_"."
 | 
|---|
| 36 |  D ^DIR K DIR
 | 
|---|
| 37 |  I $D(DIRUT) S WVPOP=1 Q
 | 
|---|
| 38 |  ;---> IF ALL ARE SELECTED, QUIT HERE.
 | 
|---|
| 39 |  I Y S @(WVARR1_"(""ALL"")")="",WVPOP=0 W ! Q
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 |  W !!?3,"Select the "_WVITEM_"(s) you wish to include in this listing."
 | 
|---|
| 42 |  S DIC(0)="QEMA",DIC=WVFILE
 | 
|---|
| 43 |  S DIC("A")="   Select "_WVITEM_": "
 | 
|---|
| 44 |  S:$D(WVDFLT) DIC("B")=WVDFLT
 | 
|---|
| 45 |  S:$D(WVSCRN) DIC("S")=WVSCRN
 | 
|---|
| 46 |  F  D ^DIC K DIC("B") Q:Y<0  S @(WVARR1_"(+Y)")=""
 | 
|---|
| 47 |  I '$D(@WVARR1) D  S WVPOP=1 Q
 | 
|---|
| 48 |  .W !?3,"No ",WVITEM," selected.",! D DIRZ^WVUTL3
 | 
|---|
| 49 |  W !!?3,"The following ",WVITEMS," will be included in this report:"
 | 
|---|
| 50 |  W !?3,$$REPEAT^XLFSTR("-",48+$L(WVITEM))
 | 
|---|
| 51 |  ;W !?3 F I=1:1:48+$L(WVITEM) W "-"
 | 
|---|
| 52 |  S N=0 F  S N=$O(@(WVARR1_"(N)")) Q:'N  D
 | 
|---|
| 53 |  .W !?5,$P(@(WVGBL_"N,0)"),U)
 | 
|---|
| 54 |  .;---> NEXT LINE WOULD BE CODE TO BUILD FOR DISPLAYING AN ADDITIONAL
 | 
|---|
| 55 |  .;---> PIECE OF THE ZERO NODE OF THE SELECTED ENTRIES (IDENTIFIERS).
 | 
|---|
| 56 |  .;W " - ",$P(@(WVGBL_"N,0)"),U,2)
 | 
|---|
| 57 |  W ! S DIR(0)="Y",DIR("A")="   Is this correct",DIR("B")="Y"
 | 
|---|
| 58 |  D ^DIR I $D(DIRUT) S WVPOP=1 Q
 | 
|---|
| 59 |  I 'Y K @WVARR1 D  G SELECT1
 | 
|---|
| 60 |  .W "   All ",WVITEMS," deleted.",!?26," * Please begin again. *"
 | 
|---|
| 61 |  S WVPOP=0 W !
 | 
|---|
| 62 |  Q
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 | PLURAL ;EP
 | 
|---|
| 65 |  ;---> CHANGE Y TO I AND AS ES IF NECESSARY.
 | 
|---|
| 66 |  I "Yy"[$E(WVITEM,$L(WVITEM)) D  Q
 | 
|---|
| 67 |  .S WVITEMS=$E(WVITEM,1,($L(WVITEM)-1))_"ies"
 | 
|---|
| 68 |  S WVITEMS=WVITEM_"s"
 | 
|---|
| 69 |  Q
 | 
|---|