Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: IBDF5

IBDF5.m

Go to the documentation of this file.
IBDF5 ;ALB/CJM - ENCOUNTER FORM (edit a form) ;11/16/92
 ;;3.0;AUTOMATED INFO COLLECTION SYS;**63**;APR 24, 1997;Build 80
 ;
 ;
 ;displays the form for editing using the list processor
 ;
 ;these variables should always be defined while editing a form
 ;IBFORM - contains the form description
INIT ;
 ;
 Q:'$$FORMDSCR^IBDFU1C(.IBFORM)
 D IDXFORM^IBDF5A()
 Q
EXIT ;
 K @VALMAR
 Q
HDR ;the screen header, a ruler
 S VALMHDR(1)=$$PADRIGHT^IBDFU("",4) ;VALMHDR(2)=VALMHDR(2)_0
 F I=1:1:16 S VALMHDR(1)=VALMHDR(1)_$J(I,10)
 Q
DELETE  ;allows user to select a block for deletion
 N IBBLK,IBVALMBG,TOP,BOT,IBD9,IBD10,IBDN,IBDX
 S VALMBCK="R",IBVALMBG=$G(VALMBG)
 S VALMBG=IBVALMBG
 D FULL^VALM1
 S IBBLK=$$SLCTBLK^IBDFU8(IBFORM,IOSL)
 Q:'IBBLK
 Q:'$$RUSURE^IBDFU5($P($G(^IBE(357.1,IBBLK,0)),"^"))
 D TOPNBOT^IBDFU5(IBBLK,.TOP,.BOT)
 S (IBD9,IBD10)=0
 ;Check to see if block is an ICD-9 or ICD-10 code block.
 S IBDN="" F  S IBDN=$O(^IBE(357.2,"C",IBBLK,IBDN)) Q:IBDN=""  S IBDX=$P($G(^IBE(357.2,IBDN,0)),U,11) I IBDX?1.N S IBDX=$E($P($G(^IBE(357.6,IBDX,0)),U,1),1,30) D
 .I '$O(^IBE(357.3,"C",IBDN,"")) Q  ;Only log history fields if ICD-9 or ICD-10 codes are contained in block.
 .I IBDX="DG SELECT ICD-9 DIAGNOSIS CODE",$O(^IBE(357.3,"C",IBDN,"")) S IBD9=1
 .I IBDX="DG SELECT ICD-10 DIAGNOSIS COD",$O(^IBE(357.3,"C",IBDN,"")) S IBD10=1
 D DLTBLK^IBDFU3(IBBLK,IBFORM,357.1)
 ;Now update history if block was an ICD-9 or ICD-10 block before block was deleted.
 N IBDX
 I IBD9 S IBDX=$$CSUPD357^IBDUTICD(IBFORM,1,"",$$NOW^XLFDT(),DUZ)
 I IBD10 S IBDX=$$CSUPD357^IBDUTICD(IBFORM,30,"",$$NOW^XLFDT(),DUZ)
 S VALMBCK="R"
 D IDXFORM^IBDF5A(TOP,BOT)
 Q
 ;
MOVE ;allows the user to select a block and move it
 N IBBLK,NODE0,BLKWIDTH,BLKHT,STARTCOL,STARTROW,TOP1,BOT1,TOP2,BOT2
 S VALMBCK="R"
 ;D FULL^VALM1
 S IBBLK=$$SLCTBLK^IBDFU8(IBFORM,5)
 I IBBLK D
 .S NODE0=$G(^IBE(357.1,IBBLK,0))
 .S BLKWIDTH=+$P(NODE0,"^",6),BLKHT=+$P(NODE0,"^",7),STARTCOL=+$P(NODE0,"^",5),STARTROW=+$P(NODE0,"^",4)
 .S TOP1=STARTROW,BOT1=(TOP1+BLKHT)-1
 .I STARTROW!(IBFORM("HT")>BLKHT) K DIR S DIR(0)="NA^1:"_(IBFORM("HT")-BLKHT+1)_":0",DIR("A")="Move the TOP MARGIN of the block to which row?: ",DIR("B")=STARTROW+1 D ^DIR K DIR Q:$D(DIRUT)  S STARTROW=X-1
 .I STARTCOL!(IBFORM("WIDTH")>BLKWIDTH) K DIR S DIR(0)="NA^1:"_(IBFORM("WIDTH")-BLKWIDTH+1)_":0",DIR("A")="Move the LEFT MARGIN of the block to which column?: ",DIR("B")=STARTCOL+1 D ^DIR K DIR Q:$D(DIRUT)  S STARTCOL=X-1
 .K DIE,DA S DIE=357.1,DA=IBBLK,DR=".04////^S X=STARTROW;.05////^S X=STARTCOL" D ^DIE K DIE,DA,DR
 .S VALMBCK="R"
 .D TOPNBOT^IBDFU5(IBBLK,.TOP2,.BOT2) S TOP1=$S(TOP1<TOP2:TOP1,1:TOP2) S BOT1=$S(BOT1>BOT2:BOT1,1:BOT2)
 .D IDXFORM^IBDF5A(TOP1,BOT1)
 .S VALMBG=STARTROW-7 S:VALMBG<1 VALMBG=1
 Q
RESIZE ;allows user to select a block & re-size it
 N IBBLK,BLKWIDTH,BLKHT,STARTCOL,STARTROW,TOP1,TOP2,BOT1,BOT2
 S IBBLK=$$SLCTBLK^IBDFU8(IBFORM,5)
 I IBBLK D
 .D NOWSIZE S TOP1=STARTROW,BOT1=(TOP1+BLKHT)-1
 .D NEWSIZE
 .D TOPNBOT^IBDFU5(IBBLK,.TOP2,.BOT2) S TOP1=$S(TOP1<TOP2:TOP1,1:TOP2) S BOT1=$S(BOT1>BOT2:BOT1,1:BOT2)
 .D IDXFORM^IBDF5A(TOP1,BOT1)
 S VALMBCK="R"
 Q
NOWSIZE ;what size is the block, and where does it start? returns BLKWIDTH,BLKHT,STARTROW,STARTCOL
 N NODE0
 S NODE0=$G(^IBE(357.1,IBBLK,0))
 S BLKWIDTH=+$P(NODE0,"^",6),BLKHT=+$P(NODE0,"^",7),STARTCOL=+$P(NODE0,"^",5),STARTROW=+$P(NODE0,"^",4)
 Q
NEWSIZE ;allows user to change the size of a block
 K DIR S DIR(0)="NA^"_(STARTROW+1)_":"_(IBFORM("HT"))_":0",DIR("A")="Move the BOTTOM MARGIN of the block to which row?: ",DIR("B")=(STARTROW+BLKHT) D ^DIR K DIR Q:$D(DIRUT)  S BLKHT=(X-STARTROW)
 K DIR S DIR(0)="NA^"_(STARTCOL+1)_":"_IBFORM("WIDTH")_":0",DIR("A")="Move the RIGHT MARGIN of the block to which column?: ",DIR("B")=(STARTCOL+BLKWIDTH) D ^DIR K DIR Q:$D(DIRUT)  S BLKWIDTH=(X-STARTCOL)
 K DIE,DA S DIE=357.1,DA=IBBLK,DR=".06////^S X=BLKWIDTH;.07////^S X=BLKHT" D ^DIE K DIE,DA,DR
 D UNCMPBLK^IBDF19(IBBLK)
 Q
SHIFT ;allows the user to shift a group of blocks within a rectangular region on the form
 D SHIFT^IBDF10("B")
 D IDXFORM^IBDF5A()
 S VALMBCK="R"
 Q