1 | IBDFGRP ;ALB/MAF - GROUP COPY - 7/25/95
|
---|
2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997
|
---|
3 | N NEWLIST,NEWBLOCK
|
---|
4 | S NEWLIST=IBLIST,NEWBLOCK=IBBLK
|
---|
5 | N IBBLK,TOP,BOT,IBLIST,IBFORM
|
---|
6 | S VALMBCK="R"
|
---|
7 | S IBBLK=$$SELECT2()
|
---|
8 | Q:'IBBLK
|
---|
9 | ;
|
---|
10 | S DIC("S")="I $P(^(0),U,11)=$P($G(^IBE(357.2,+NEWLIST,0)),U,11)" D SELECT^IBDF3 K DIC
|
---|
11 | ;
|
---|
12 | I '$G(IBLIST) W !!,"Block does not contain same type of selection list '"_$P($G(^IBE(357.6,+$P($G(^IBE(357.2,+NEWLIST,0)),U,11),0)),U)_"'.",! D PAUSE^IBDFU5
|
---|
13 | ;
|
---|
14 | I IBLIST D EN^VALM("IBDF QUICK GRP COPY")
|
---|
15 | Q
|
---|
16 | ;
|
---|
17 | INIT ; -- init variables and list array
|
---|
18 | N IBDCNT,IBDCNT1
|
---|
19 | K ^TMP("GRP",$J),^TMP("GRPIDX",$J),IBDFHDR D KILL^VALM10()
|
---|
20 | ;
|
---|
21 | ; -- Set up arrays for new and old selection list definitions in
|
---|
22 | ; in file 357.2. Used to match data with the right subcolum #
|
---|
23 | ; when copying selection lists to a form.
|
---|
24 | ;
|
---|
25 | ; - IBDFNEW(SUBCOLUM #) = TYPE OF DATA ..5th piece (text or code)
|
---|
26 | ; - IBDFOLD(SUBCOLUM #) = TYPE OF DATA..5th piece (text or code)
|
---|
27 | D
|
---|
28 | .N K,NODE
|
---|
29 | .S (IBDFNEW,IBDFOLD)=0
|
---|
30 | .I $D(IBLIST) S K=0 D
|
---|
31 | ..F S K=$O(^IBE(357.2,IBLIST,2,K)) Q:'K S NODE=$G(^IBE(357.2,IBLIST,2,K,0)),IBDFOLD(+NODE)=+$P(NODE,"^",5)
|
---|
32 | ..Q
|
---|
33 | .I $D(NEWLIST) S NODE="",K=0 D
|
---|
34 | ..F S K=$O(^IBE(357.2,NEWLIST,2,K)) Q:'K S NODE=$G(^IBE(357.2,NEWLIST,2,K,0)),IBDFNEW(+NODE)=+$P(NODE,"^",5)
|
---|
35 | ..Q
|
---|
36 | S (IBDCNT,IBDCNT1,VALMCNT)=0
|
---|
37 | S IBDLSTNM=$P(^IBE(357.2,IBLIST,0),"^",1) D INTER D
|
---|
38 | .S IBLSNODE=$G(^IBE(357.2,IBLIST,0))
|
---|
39 | .I $D(IBDFAR) F IBDFX=0:0 S IBDFX=$O(@(IBDFAR_"("_IBDFX_")")) Q:'IBDFX S IBDFARR=$G(@(IBDFAR_"("_IBDFX_")")) D:$P(IBDFARR,"^",1)="" HEADER D:$P(IBDFARR,"^",1)]"" SETARR
|
---|
40 | Q:$$LSTDESCR^IBDFU1(.IBLIST) 1
|
---|
41 | S IBRTN=IBLIST("RTN")
|
---|
42 | D RTNDSCR^IBDFU1B(.IBRTN)
|
---|
43 | Q
|
---|
44 | ;
|
---|
45 | SETARR ; -- Set up Listman array
|
---|
46 | N IBDFNODE
|
---|
47 | S IBDFNODE=IBDFARR
|
---|
48 | S IBDFSEL=$P(IBDFNODE,"^",4)
|
---|
49 | S IBDCNT=IBDCNT+1,VALMCNT=VALMCNT+1
|
---|
50 | S X=""
|
---|
51 | S IBDFVAL=$P(IBDFNODE,"^",1)
|
---|
52 | S X=$$SETSTR^VALM1(IBDFVAL,X,7,7)
|
---|
53 | S IBDFVAL=$P(IBDFNODE,"^",6)
|
---|
54 | S X=$$SETSTR^VALM1(IBDFVAL,X,16,5)
|
---|
55 | S IBDFVAL=$P(IBDFNODE,"^",2)
|
---|
56 | S X=$$SETSTR^VALM1(IBDFVAL,X,23,40)
|
---|
57 | S IBDFVAL=$P(^IBE(357.4,$P(IBDFNODE,"^",5),0),"^",1)
|
---|
58 | S X=$$SETSTR^VALM1(IBDFVAL,X,64,15)
|
---|
59 | TMP ; -- Set up TMP Array
|
---|
60 | S ^TMP("GRP",$J,IBDCNT,0)=X,^TMP("GRP",$J,"IDX",VALMCNT,IBDCNT1)=IBDFSEL
|
---|
61 | S ^TMP("GRPIDX",$J,IBDCNT1)=VALMCNT_"^"_$P(IBDFARR,"^",3)_"^"_$P(IBDFARR,"^",4)_"^"_$P(IBDFARR,"^",5) ;_"^"_IBDFX_"^"_$P(IBDFTMP,"^",4)_"^"_$P(IBDFTMP,"^",5)_"^"_$P(IBDFTMP,"^",1)_"^"_$P(IBDFTMP,"^",2)
|
---|
62 | Q
|
---|
63 | HEADER ; -- Set up header line for the display
|
---|
64 | S IBDCNT1=IBDCNT1+1
|
---|
65 | S IBDCNT=IBDCNT+1,VALMCNT=VALMCNT+1
|
---|
66 | S X=""
|
---|
67 | S IBDVAL=$S($P(IBDFARR,"^",2)]"":$P(IBDFARR,"^",2),1:"BLANK")
|
---|
68 | S IBDFHDR(IBDVAL)=IBDCNT1_"^"_$P(IBDFARR,"^",5)
|
---|
69 | S IBDFSEL=$P(IBDFARR,"^",5)
|
---|
70 | S X=$$SETSTR^VALM1(IBDCNT1_")",X,1,5) D TMP
|
---|
71 | S X="",IBDCNT=IBDCNT+1,VALMCNT=VALMCNT+1
|
---|
72 | S IBDVAL=$P(IBDFARR,"^",6)
|
---|
73 | S X=$$SETSTR^VALM1(IBDVAL,X,16,5)
|
---|
74 | S IBDVAL=$P(IBDFARR,"^",2)
|
---|
75 | S IBDVAL1=$L(IBDVAL) S IBDVAL1=(80-IBDVAL1)/2 S IBDVAL1=IBDVAL1\1 S X=$$SETSTR^VALM1(" ",X,22,IBDVAL1)
|
---|
76 | S X=$$SETSTR^VALM1(IBDVAL,X,IBDVAL1,25) D TMP,CNTRL^VALM10(VALMCNT,1,80,IOINHI,IOINORM,0)
|
---|
77 | S X="",IBDCNT=IBDCNT+1,VALMCNT=VALMCNT+1
|
---|
78 | S X=$$SETSTR^VALM1(" ",X,1,3) D TMP
|
---|
79 | Q
|
---|
80 | INTER ; -- Find Package interface for selection list
|
---|
81 | K IBARRY S IBDFAR="IBARRY",IBDFINT=$P($G(^IBE(357.2,IBLIST,0)),"^",11),IBDFINT(1)=$P(^IBE(357.6,IBDFINT,0),"^",1) D GETLST^IBDFQSL2(IBFORM,IBBLK,IBLIST,.IBDFINT,"IBARRY",1)
|
---|
82 | Q
|
---|
83 | HELP ; -- help code
|
---|
84 | S X="?" D DISP^XQORM1 W !!
|
---|
85 | Q
|
---|
86 | ;
|
---|
87 | EXIT ; -- exit code
|
---|
88 | K IBARRY,IBDFAR,IBDFARR,IBDFHDR,IBDFINT,IBDFSEL,IBDFVAL,IBDFX,IBDLSTNM,IBDVAL,IBDVAL1,IBLIST,IBRTN,IEN,IBLSNODE,DIC,IBGRP,NODE,IBDFNEW,IBDFOLD
|
---|
89 | K ^TMP("SEL",$J),^TMP("SELIDX",$J)
|
---|
90 | Q
|
---|
91 | ;
|
---|
92 | EXPND ; -- expand code
|
---|
93 | Q
|
---|
94 | ;
|
---|
95 | GRPCOPY ; -- COPY GROUP
|
---|
96 | N IBDVALM,GRP,VALMY,FROM,TO,IBDFCPYE
|
---|
97 | S IBDFCPYF=1
|
---|
98 | S (FROM,TO)="357.4"
|
---|
99 | S VALMBCK=""
|
---|
100 | D EN^VALM2($G(XQORNOD(0)))
|
---|
101 | I $O(VALMY(0)) D
|
---|
102 | .S IBDVALM=0
|
---|
103 | .D FULL^VALM1 S VALMBCK="R"
|
---|
104 | .F IBDVALM=0:0 S IBDVALM=$O(VALMY(IBDVALM)) Q:'IBDVALM S (DA,GRP)=$P($G(^TMP("GRPIDX",$J,IBDVALM)),"^",4) D COPYGRP^IBDFU2A(GRP,IBLIST,NEWLIST,NEWBLOCK,FROM,TO)
|
---|
105 | K IBDFCPYF
|
---|
106 | Q
|
---|
107 | SELECT2() ;allows the user to select a form, then a block from it
|
---|
108 | S IBBLK=""
|
---|
109 | S IBFORM=$$SLCTFORM^IBDFU4(0)
|
---|
110 | I IBFORM D
|
---|
111 | .W !!,"NOW CHOOSE THE BLOCK TO COPY!",!
|
---|
112 | .S IBBLK=$$SLCTBLK^IBDFU8(IBFORM,IOSL)
|
---|
113 | Q IBBLK
|
---|