| 1 | IBDF9C ;ALB/CJM - ENCOUNTER FORM - (edit header block) ;FEB 1,1993
 | 
|---|
| 2 |  ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | EDITHDR ;edit the header block
 | 
|---|
| 5 |  N HDRBLK,HDRFLD,TOP1,BOT1,TOP2,BOT2,HDRLINES,MAXLEN,QUIT,NEWBLOCK
 | 
|---|
| 6 |  S VALMBCK="R",(TOP1,TOP2,BOT1,BOT2,QUIT,NEWBLOCK)=0
 | 
|---|
| 7 |  D FULL^VALM1
 | 
|---|
| 8 |  S HDRBLK=$$FINDBLK I 'HDRBLK S HDRBLK=$$MAKEBLK I 'HDRBLK Q
 | 
|---|
| 9 |  D TOPNBOT^IBDFU5(HDRBLK,.TOP1,.BOT1)
 | 
|---|
| 10 |  S HDRFLD=$$FINDFLD I 'HDRFLD S HDRFLD=$$MAKEFLD I 'HDRFLD Q
 | 
|---|
| 11 |  D EDITFLD
 | 
|---|
| 12 |  D:'QUIT EDITBLK,MOVEFLD
 | 
|---|
| 13 |  I HDRBLK D TOPNBOT^IBDFU5(HDRBLK,.TOP2,.BOT2),UNCMPBLK^IBDF19(HDRBLK)
 | 
|---|
| 14 |  D IDXFORM^IBDF5A($S(TOP1<TOP2:TOP1,1:TOP2),$S(BOT1>BOT2:BOT1,1:BOT2))
 | 
|---|
| 15 |  S VALMBCK="R"
 | 
|---|
| 16 |  Q
 | 
|---|
| 17 | FINDBLK() ;
 | 
|---|
| 18 |  S HDRBLK="" F  S HDRBLK=$O(^IBE(357.1,"C",IBFORM,HDRBLK)) Q:'HDRBLK  Q:$P($G(^IBE(357.1,HDRBLK,0)),"^")="HEADER"
 | 
|---|
| 19 |  Q HDRBLK
 | 
|---|
| 20 | MAKEBLK() ;
 | 
|---|
| 21 |  S NEWBLOCK=1
 | 
|---|
| 22 |  K DIC,DD,DO,DINUM S DIC="^IBE(357.1,",X="HEADER",DIC(0)="",DIC("DR")=".02////"_IBFORM
 | 
|---|
| 23 |  D FILE^DICN K DIC,DIE
 | 
|---|
| 24 |  Q $S(+Y<0:"",1:+Y)
 | 
|---|
| 25 | FINDFLD() ;
 | 
|---|
| 26 |  S HDRFLD="" F  S HDRFLD=$O(^IBE(357.5,"C",HDRBLK,HDRFLD)) Q:'HDRFLD  Q:$P($G(^IBE(357.5,HDRFLD,0)),"^")="HEADER"
 | 
|---|
| 27 |  Q HDRFLD
 | 
|---|
| 28 | MAKEFLD() ;
 | 
|---|
| 29 |  K DIC,DD,DO,DINUM S DIC="^IBE(357.5,",X="HEADER",DIC(0)="",DIC("DR")=".02////"_HDRBLK
 | 
|---|
| 30 |  D FILE^DICN K DIC,DIE
 | 
|---|
| 31 |  Q $S(+Y<0:"",1:+Y)
 | 
|---|
| 32 | EDITFLD ;allows the user to edit the header lines
 | 
|---|
| 33 |  N NODE,SUBFLD
 | 
|---|
| 34 |  K DIE,DA S DIE=357.5,DA=HDRFLD,DR="[IBDF EDIT FORM HEADER]",DIE("NO^")="BACKOUTOK" D ^DIE K DIE,DR,DA
 | 
|---|
| 35 |  ;find the number of lines and the maximum length
 | 
|---|
| 36 |  S (HDRLINES,MAXLEN)=0
 | 
|---|
| 37 |  S SUBFLD=0 F  S SUBFLD=$O(^IBE(357.5,HDRFLD,2,SUBFLD)) Q:'SUBFLD  S NODE=$G(^(SUBFLD,0)) I NODE'="" S HDRLINES=HDRLINES+1 S MAXLEN=$S(MAXLEN>$L($P(NODE,"^",1)):MAXLEN,1:$L($P(NODE,"^",1)))
 | 
|---|
| 38 |  I 'MAXLEN D DLTBLK^IBDFU3(HDRBLK,IBFORM,357.1) S QUIT=1,HDRBLK=""
 | 
|---|
| 39 |  Q
 | 
|---|
| 40 | EDITBLK ;allows the user to position the header block & draw a box around it
 | 
|---|
| 41 |  N IBBOX,IBDELETE
 | 
|---|
| 42 |  S IBBOX=0,IBDELETE=1
 | 
|---|
| 43 |  D RE^VALM4
 | 
|---|
| 44 |  K DIE,DA S DIE=357.1,DA=HDRBLK,DR="[IBDF EDIT HEADER BLOCK]",DIE("NO^")="BACKOUTOK" D ^DIE K DIE,DR,DA
 | 
|---|
| 45 |  I IBDELETE,NEWBLOCK D DLTBLK^IBDFU3(HDRBLK,IBFORM,357.1)
 | 
|---|
| 46 |  Q
 | 
|---|
| 47 | DFLTCOL() ;finds the column that would center the header block
 | 
|---|
| 48 |  Q ((IBFORM("WIDTH")-(+$G(MAXLEN)+(+$G(IBBOX))))\2)+1
 | 
|---|
| 49 | MOVEFLD ;centers each header line in the block
 | 
|---|
| 50 |  N START,SUBFLD,HDR,LINES
 | 
|---|
| 51 |  S LINES=0
 | 
|---|
| 52 |  S START=$S($P($G(^IBE(357.1,HDRBLK,0)),"^",10)=1:1,1:0)
 | 
|---|
| 53 |  S SUBFLD=0
 | 
|---|
| 54 |  F  S SUBFLD=$O(^IBE(357.5,HDRFLD,2,SUBFLD)) Q:'SUBFLD  S NODE=$G(^IBE(357.5,HDRFLD,2,SUBFLD,0)),HDR=$P(NODE,"^",1) D
 | 
|---|
| 55 |  .I HDR'="" S $P(NODE,"^",4)=((MAXLEN-$L(HDR))\2)+START,$P(NODE,"^",5)=LINES+START,LINES=LINES+1 S ^IBE(357.5,HDRFLD,2,SUBFLD,0)=NODE
 | 
|---|
| 56 |  Q
 | 
|---|