1 | IBDF9D ;ALB/CJM - ENCOUNTER FORM (create/edit/delete lines);MARCH 20, 1993
|
---|
2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997
|
---|
3 | LINE ;Create, Edit, or Delete a line on the block
|
---|
4 | S VALMBCK="R"
|
---|
5 | K DIR S DIR("?",1)="You can add vertical or horizontal lines to the block, or edit or delete",DIR("?")="a line already there IF it was created through this action."
|
---|
6 | S DIR("B")="C",DIR(0)="SB^C:Create;E:Edit;D:Delete",DIR("A")="[C]reate , [D]elete, or [E]dit a line"
|
---|
7 | D ^DIR K DIR I $D(DIRUT)!(Y<0) Q
|
---|
8 | D @$S(Y="C":"NEWLINE",Y="E":"EDITLINE",Y="D":"DLTLINE",1:"")
|
---|
9 | S VALMBCK="R"
|
---|
10 | Q
|
---|
11 | EDITLINE ;expects IBBLK to be defined - edits an already existing line
|
---|
12 | N IBLINE,IBDFDONE
|
---|
13 | ;IBDFDONE is used in the imput template
|
---|
14 | D FULL^VALM1
|
---|
15 | D SELECT
|
---|
16 | I IBLINE D
|
---|
17 | .D RE^VALM4
|
---|
18 | .K DIE,DA S DIE=357.7,DA=IBLINE,DR="[IBDF FORM LINE]",DIE("NO^")="BACKOUTOK" D ^DIE K DIE,DR,DA
|
---|
19 | .D UNCMPBLK^IBDF19(IBBLK),IDXBLOCK^IBDFU4
|
---|
20 | Q
|
---|
21 | SELECT ;select a line on the block
|
---|
22 | S IBLINE=0
|
---|
23 | Q:'$G(IBBLK)
|
---|
24 | I '$O(^IBE(357.7,"C",IBBLK,0)) W !,"There is no line!" D PAUSE^IBDFU5 Q
|
---|
25 | AGAIN K DIC S DIC="^IBE(357.7,",DIC(0)="EFQ",DIC("B")="",D="C",X=IBBLK
|
---|
26 | S DIC("S")="I $P($G(^(0)),U,6)=IBBLK"
|
---|
27 | D IX^DIC K DIC
|
---|
28 | S:+Y>0 IBLINE=+Y
|
---|
29 | I 'IBLINE,'$D(DTOUT),'$D(DUOUT) K DIR S DIR(0)="Y",DIR("A")="No data line selected! Try again",DIR("B")="YES" D ^DIR K DIR I '$D(DIRUT),Y=1 G AGAIN
|
---|
30 | Q
|
---|
31 | DLTLINE ;expects IBBLK to be defined - deletes one of the blocks lines
|
---|
32 | N IBLINE
|
---|
33 | D FULL^VALM1
|
---|
34 | D SELECT
|
---|
35 | I IBLINE D
|
---|
36 | .Q:'$$RUSURE^IBDFU5($P($G(^IBE(357.7,IBLINE,0)),"^"))
|
---|
37 | .D DLTLINE^IBDFU3(357.7,IBBLK,IBLINE)
|
---|
38 | .D UNCMPBLK^IBDF19(IBBLK),IDXBLOCK^IBDFU4
|
---|
39 | Q
|
---|
40 | NEWLINE ;adds a new line, expects IBBLK to be defined
|
---|
41 | N IBLINE,NODE,IBDFDONE,DLAYGO
|
---|
42 | ;IBDONE - a flag used in the input template to indicate if the input template was completed - delete the line if not completed
|
---|
43 | ;S NAME=$$NEWNAME Q:NAME=-1
|
---|
44 | K DIC,DIE,DD,DO,DINUM S DIC="^IBE(357.7,",DIC(0)="FL",X="NAME",DLAYGO=357.7
|
---|
45 | D FILE^DICN K DIC,DIE,DA,DO
|
---|
46 | S IBLINE=+Y
|
---|
47 | I 'IBLINE D
|
---|
48 | .W !,"Unable to create a new line!" D PAUSE^IBDFU5
|
---|
49 | I IBLINE D
|
---|
50 | .K DIE,DA S DIE=357.7,DA=IBLINE,DR="[IBDF FORM LINE]",DIE("NO^")="BACKOUTOK" D ^DIE K DIE,DR,DA
|
---|
51 | .I 'IBDFDONE K DA S DIK="^IBE(357.7,",DA=IBLINE D ^DIK K DIK Q
|
---|
52 | .D UNCMPBLK^IBDF19(IBBLK),IDXBLOCK^IBDFU4
|
---|
53 | Q
|
---|
54 | NEWNAME(IBLINE) ;
|
---|
55 | N NODE,NAME S NODE=$G(^IBE(357.7,IBLINE,0))
|
---|
56 | Q:NODE="" "LINE"
|
---|
57 | S NAME=$P(NODE,"^",4)_"("_(+$P(NODE,"^",3)+1)_","_(+$P(NODE,"^",2)+1)_")"
|
---|
58 | Q NAME
|
---|
59 | MAXLEN() ;returns the maximum length of the line=IBLINE that will fit in the block=IBBLK
|
---|
60 | N LEN,TYPE,NODE,POS
|
---|
61 | S NODE=$G(^IBE(357.7,IBLINE,0))
|
---|
62 | S TYPE=$P(NODE,"^",4)
|
---|
63 | S POS=$S(TYPE="H":$P(NODE,"^",2),1:$P(NODE,"^",3))
|
---|
64 | Q ((1+$S(TYPE="H":$$MAXX^IBDFU1B,1:$$MAXY^IBDFU1B))-POS)
|
---|
65 | ;
|
---|
66 | TOOMANY() ;are there too many lines in the box? returns 0 or 1
|
---|
67 | ;IBBLK is assumed to be defined=the block
|
---|
68 | N SPACING,NODE,START,NUMBER
|
---|
69 | Q:'$G(IBLINE) 0
|
---|
70 | Q:'$G(IBBLK) 0
|
---|
71 | S NODE=$G(^IBE(357.7,IBLINE,0))
|
---|
72 | S START=$P(NODE,"^",3),SPACING=$P(NODE,"^",8),NUMBER=$P(NODE,"^",7)
|
---|
73 | S SPACING=$S(SPACING="d":2,SPACING="t":3,1:1)
|
---|
74 | I (START+(SPACING*NUMBER)-(SPACING-1))>$$MAXY^IBDFU1B
|
---|
75 | Q $T
|
---|