1 | IBDFU4 ;ALB/CJM - ENCOUNTER FORM - BUILD FORM(write single form block to array for display,position & size copied block) ; 08-JAN-1993
|
---|
2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;**10**;APR 24, 1997
|
---|
3 | ;
|
---|
4 | IDXBLOCK ; create list containing block rows for list processor
|
---|
5 | ;
|
---|
6 | N I
|
---|
7 | W !,"... BUILDING THE FORM BLOCK ..."
|
---|
8 | Q:$$BLKDESCR^IBDFU1B(.IBBLK)
|
---|
9 | ;
|
---|
10 | ;keep small blocks in memory
|
---|
11 | ;I ((IBBLK("H")+1)*(IBBLK("W")+1))<4000 S VALMAR="IBMEMARY"
|
---|
12 | ;
|
---|
13 | K @VALMAR D KILL^VALM10()
|
---|
14 | D BLNKFORM^IBDF5A(0,IBBLK("H")-1,IBBLK("W"))
|
---|
15 | S I="",$P(I,"~",IBBLK("W")+1)="~"
|
---|
16 | S @VALMAR@(IBBLK("H")+1,0)=" "_I
|
---|
17 | S VALMCNT=IBBLK("H")+1
|
---|
18 | D DRWBLOCK^IBDF2A1(.IBBLK,1)
|
---|
19 | Q
|
---|
20 | POS(NEWBLOCK,DFLTX,DFLTY) ;allows the user to position and size the block
|
---|
21 | ;NEWBLOCK = block to be edited
|
---|
22 | ;DFLTY - default value for starting row
|
---|
23 | ;DFLTX - default value for starting column
|
---|
24 | N IBX,IBY ;used in the input template
|
---|
25 | S:$G(DFLTX)=+$G(DFLTX) $P(NODE,"^",5)=DFLTX
|
---|
26 | S:$G(DFLTY)=+$G(DFLTY) $P(NODE,"^",4)=DFLTY
|
---|
27 | N NODE,IBBLK,IBDONE
|
---|
28 | S IBBLK=NEWBLOCK
|
---|
29 | S NODE=$G(^IBE(357.1,NEWBLOCK,0))
|
---|
30 | ;set defaults for starting column, starting row
|
---|
31 | S ^IBE(357.1,NEWBLOCK,0)=NODE,IBDONE=0
|
---|
32 | K DIE S DIE=357.1,DA=NEWBLOCK,DR="[IBDF POSITION COPIED BLOCK]"
|
---|
33 | D ^DIE K DIE,DR,DA
|
---|
34 | I 'IBDONE D DLTBLK^IBDFU3(NEWBLOCK,IBFORM,357.1)
|
---|
35 | Q
|
---|
36 | CURX() ;returns the current X position (top left corner of displayed poriton of the form - internal column value)
|
---|
37 | N IB
|
---|
38 | S IB=+$G(VALMLFT),IB=IB-5 S:IB<0 IB=0
|
---|
39 | Q IB
|
---|
40 | CURY() ;returns the current Y position (top left corner of displayed poriton of the form - internal row value)
|
---|
41 | N IB
|
---|
42 | S IB=+$G(VALMBG),IB=IB-1 S:IB<0 IB=0
|
---|
43 | Q IB
|
---|
44 | SLCTFORM(TK,NODE) ;allows the user to select a form and returns the IEN
|
---|
45 | ;returns 0 if no form selected
|
---|
46 | ;
|
---|
47 | ;INPUTS
|
---|
48 | ;if TK=0 assumes form should not be a toolkit form
|
---|
49 | ;if TK=1 assumes form should be a toolkit form
|
---|
50 | ;otherwise, ask the user if the he wants to select fromt he toolkit
|
---|
51 | ;
|
---|
52 | ;NODE is optional - if defined it returns the 0 node of the form selected - should be passed by reference
|
---|
53 | ;
|
---|
54 | N FORM,Y S FORM=0
|
---|
55 | S TK=$G(TK)
|
---|
56 | I TK'=0,TK'=1 D
|
---|
57 | .K DIR S DIR(0)="YA",DIR("A")="Do you want to select a form from the toolkit? "
|
---|
58 | .D ^DIR
|
---|
59 | .I Y'=-1,'$D(DIRUT) S TK=Y
|
---|
60 | ;don't continue with the selection if it is not known whether or not the form is comming from the toolkit
|
---|
61 | I (TK=1)!(TK=0) D
|
---|
62 | .D:$G(IBDEVICE("LISTMAN")) FULL^VALM1
|
---|
63 | .K DIC S DIC("S")=$S(TK:"I $P($G(^(0)),U,7),$P($G(^(0)),U)'=""TOOL KIT"",$P($G(^(0)),U)'=""WORKCOPY"",$P($G(^(0)),U)'=""DEFAULTS""",1:"I '$P($G(^(0)),U,7)"),DIC=357,DIC(0)="AEQ"_$S($D(NODE):"Z",1:"")
|
---|
64 | .S DIC("A")="Select a FORM: "
|
---|
65 | .D ^DIC S:+Y>0 FORM=+Y
|
---|
66 | I FORM,$D(NODE) S NODE=Y(0)
|
---|
67 | K DIC,Y,DIR
|
---|
68 | Q FORM
|
---|
69 | CLINICS(FORM,ARY) ;finds the list of clinics using FORM
|
---|
70 | ;@ARY@(0) is set to the number of clinics found
|
---|
71 | ;ARY is where to put the list of clinics
|
---|
72 | ;
|
---|
73 | N CLINIC,SETUP,IDX,COUNT,NAME
|
---|
74 | K @ARY
|
---|
75 | S COUNT=0
|
---|
76 | F IDX="C","D","E","F","G","H","I","J" D
|
---|
77 | .S SETUP="" F S SETUP=$O(^SD(409.95,IDX,FORM,SETUP)) Q:'SETUP D
|
---|
78 | ..S CLINIC=$P($G(^SD(409.95,SETUP,0)),"^",1)
|
---|
79 | ..Q:'CLINIC
|
---|
80 | ..S NAME=$P($G(^SC(CLINIC,0)),"^",1)
|
---|
81 | ..Q:NAME=""
|
---|
82 | ..I '$D(@ARY@(NAME)) S @ARY@(NAME)=CLINIC,COUNT=COUNT+1
|
---|
83 | S @ARY@(0)=COUNT
|
---|
84 | Q
|
---|
85 | LIST(ARY,SCRNSIZE) ;
|
---|
86 | ;ARY is the same as in CLINICS
|
---|
87 | N CLINIC,COUNT,DIR,DTOUT,DUOUT,DIRUT,DIROUT
|
---|
88 | S DIR(0)="YO",DIR("B")="Y",DIR("A")="List the clinics using the form"
|
---|
89 | D ^DIR K DIR I '$D(DIRUT),Y D
|
---|
90 | .S (COUNT,CLINIC)=0
|
---|
91 | .S DIR(0)="E"
|
---|
92 | .F S CLINIC=$O(@ARY@(CLINIC)) Q:CLINIC="" W !,CLINIC S COUNT=COUNT+1 I COUNT=SCRNSIZE D ^DIR Q:'Y S COUNT=0
|
---|
93 | .I '$D(DUOUT) D:COUNT>0 ^DIR
|
---|
94 | Q
|
---|