| [613] | 1 | IBDFU5 ;ALB/CJM - ENCOUNTER FORM (utilities) ;JAN 16,1993 | 
|---|
|  | 2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997 | 
|---|
|  | 3 | TOPNBOT(BLOCK,TOP,BOT) ;finds the top and bottom of the block - pass TOP and BOT by reference | 
|---|
|  | 4 | N NODE | 
|---|
|  | 5 | S NODE=$G(^IBE(357.1,BLOCK,0)) | 
|---|
|  | 6 | S TOP=+$P(NODE,"^",4),BOT=(TOP+(+$P(NODE,"^",7)))-1 | 
|---|
|  | 7 | Q | 
|---|
|  | 8 | RUSURE(NAME) ;obtains verification from the user for deletion- returns 1 if answered YES, otherwise NO | 
|---|
|  | 9 | ;if NAME is defined it will be used in the prompt | 
|---|
|  | 10 | N RET | 
|---|
|  | 11 | S RET=1 | 
|---|
|  | 12 | K DIR S DIR(0)="Y",DIR("A")=$S(NAME="":"Are you sure",1:"Are you sure "_NAME_" should be deleted"),DIR("B")="NO" | 
|---|
|  | 13 | D ^DIR K DIR I (Y<1)!$D(DIRUT) S RET=0 | 
|---|
|  | 14 | Q RET | 
|---|
|  | 15 | PAUSE ; | 
|---|
|  | 16 | N ANS | 
|---|
|  | 17 | W !,$C(7),"Press RETURN to continue..." R ANS:DTIME | 
|---|
|  | 18 | Q | 
|---|
|  | 19 | ; | 
|---|
|  | 20 | NOGRPHCS ;sets graphics variables to "_" and "|" | 
|---|
|  | 21 | S (IOVL,IOBLC,IOBRC)="|",(IOHL,IOTRC,IOTLC)="_" | 
|---|
|  | 22 | Q | 
|---|
|  | 23 | ; | 
|---|
|  | 24 | HELP1 ;displays a list of the record's fields from file 357.6, IB PACKAGE INTERFACE file - EXECUTABLE HELP FOR FIELDS IN THE DATA FIELD FILE | 
|---|
|  | 25 | ; | 
|---|
|  | 26 | ;INPUT - D0 is a pointer to a DATA FIELD (file 357.5) | 
|---|
|  | 27 | ; | 
|---|
|  | 28 | N RTN | 
|---|
|  | 29 | Q:'$G(D0) | 
|---|
|  | 30 | W !,"WHAT DATA SHOULD BE PRINTED IN THE SUBFIELD? CHOOSE FROM:" | 
|---|
|  | 31 | S RTN=$P($G(^IBE(357.5,D0,0)),"^",3) Q:'RTN | 
|---|
|  | 32 | D SHOWDATA | 
|---|
|  | 33 | Q | 
|---|
|  | 34 | HELP2 ;displays a list of the record's fields from file 357.6, IB PACKAGE INTERFACE file - EXECUTABLE HELP FOR FIELDS IN THE SELECTION LIST FILE | 
|---|
|  | 35 | ; | 
|---|
|  | 36 | ;INPUT - D0 should be a pointer to a SELECTION LIST | 
|---|
|  | 37 | ; | 
|---|
|  | 38 | N RTN | 
|---|
|  | 39 | W !,"WHAT DATA SHOULD BE PRINTED IN THIS SUBCOLUMN? CHOOSE FROM:" | 
|---|
|  | 40 | Q:'$G(D0) | 
|---|
|  | 41 | S RTN=$P($G(^IBE(357.2,D0,0)),"^",11) Q:'RTN | 
|---|
|  | 42 | D SHOWDATA | 
|---|
|  | 43 | W !,"You can also enter 0 if you want the item number entered in the subcolumn.",! | 
|---|
|  | 44 | Q | 
|---|
|  | 45 | ; | 
|---|
|  | 46 | HELP3 ;displays a list of the record's fields from file 357.6, IB PACKAGE INTERFACE file - used to display available data to the user before he enters a data field label | 
|---|
|  | 47 | ; | 
|---|
|  | 48 | ;INPUT - D0 is a pointer to a DATA FIELD (file 357.5) | 
|---|
|  | 49 | N RTN | 
|---|
|  | 50 | W !,"Available Data:" | 
|---|
|  | 51 | Q:'$G(D0) | 
|---|
|  | 52 | S RTN=$P($G(^IBE(357.5,D0,0)),"^",3) Q:'RTN | 
|---|
|  | 53 | D SHOWDATA | 
|---|
|  | 54 | Q | 
|---|
|  | 55 | ; | 
|---|
|  | 56 | HELP4 ;displays a list of the record's fields from file 357.6, IB PACKAGE INTERFACE file - used to display to the user the available data before a subcolumn to a selection list | 
|---|
|  | 57 | ; | 
|---|
|  | 58 | ;INPUT - D0 should be a pointer to a SELECTION LIST | 
|---|
|  | 59 | ; | 
|---|
|  | 60 | N RTN | 
|---|
|  | 61 | W !,"Available Data:" | 
|---|
|  | 62 | Q:'$G(D0) | 
|---|
|  | 63 | S RTN=$P($G(^IBE(357.2,D0,0)),"^",11) Q:'RTN | 
|---|
|  | 64 | D SHOWDATA | 
|---|
|  | 65 | Q | 
|---|
|  | 66 | HELP5 ;for number of columns in list | 
|---|
|  | 67 | I $G(IBDEVICE("LISTMAN")) D FULL^VALM1 | 
|---|
|  | 68 | W !!,"A selection list COLUMN contains items on the list. It may consist of several",!,"subcolumns. For example, a typical column may have three subcolumns, one" | 
|---|
|  | 69 | W !,"containing a code, the second a description, and the third a marking area for",!,"the user to indicate his selections from the list. Besides going down the",!,"form, the list can can go across the form by having multiple columns." | 
|---|
|  | 70 | W !!,"Entering the number of columns is optional. By default the entire block will",!,"be filled with the list.",! | 
|---|
|  | 71 | I $G(IBDEVICE("LISTMAN")) D PAUSE^IBDFU5,RE^VALM4 | 
|---|
|  | 72 | Q | 
|---|
|  | 73 | ; | 
|---|
|  | 74 | SHOWDATA ;displays a discription of the the record returned by the package interface | 
|---|
|  | 75 | ; | 
|---|
|  | 76 | ;INPUT - RTN - ptr to the package interface file | 
|---|
|  | 77 | N NODE,SUB,ROW,COL,LINE,DESCR,CANSHOW,IEN | 
|---|
|  | 78 | S NODE=$G(^IBE(357.6,RTN,2)) | 
|---|
|  | 79 | ; | 
|---|
|  | 80 | ;piece 1 may not be displayable (an ien) | 
|---|
|  | 81 | S CANSHOW=$S($P(NODE,"^",17)=0:0,1:1) | 
|---|
|  | 82 | I 'CANSHOW S NODE="" | 
|---|
|  | 83 | ; | 
|---|
|  | 84 | F ROW=0:1:3 S LINE="" D  W:(LINE'="") !,LINE | 
|---|
|  | 85 | .F COL=1:1:2 S SUB=COL+(2*ROW) D  Q:LINE="" | 
|---|
|  | 86 | ..S DESCR="" | 
|---|
|  | 87 | ..I (SUB'=1) S NODE="",IEN=$O(^IBE(357.6,RTN,15,"C",SUB,0)) S:IEN NODE=$G(^IBE(357.6,RTN,15,IEN,0)) | 
|---|
|  | 88 | ..I NODE="" I (COL=1&'$D(^IBE(357.6,RTN,15,"C",SUB+1)))!((COL'=1)&(DESCR="(not applicable)")) Q | 
|---|
|  | 89 | ..S DESCR=$P(NODE,"^") I DESCR'="" S DESCR=DESCR_" :"_$P(NODE,"^",2)_" char" | 
|---|
|  | 90 | ..I DESCR="" S DESCR="(N/A)" | 
|---|
|  | 91 | ..S LINE=LINE_$S(DESCR="":"",1:$$PADRIGHT^IBDFU("  "_SUB_"= "_DESCR,39)) | 
|---|
|  | 92 | Q | 
|---|
|  | 93 | ; | 
|---|
|  | 94 | RESET ;resets the scrolling area of the screen to that defined by List Manager | 
|---|
|  | 95 | ;I $G(IOSTBM)'="" S IOTM=IOSL-4,IOBM=IOSL W IOSC,@IOSTBM,IORC | 
|---|
|  | 96 | Q | 
|---|
|  | 97 | VARIABLE(VAR) ;returns 0 if VAR is not syntactically a good local variable name, 1 otherwise | 
|---|
|  | 98 | N I,LEN,CHAR,GOOD | 
|---|
|  | 99 | S LEN=$L(VAR) | 
|---|
|  | 100 | S CHAR=$E(VAR) | 
|---|
|  | 101 | I '((CHAR?1A)!(CHAR="%")) Q 0 | 
|---|
|  | 102 | S GOOD=1 | 
|---|
|  | 103 | F I=2:1:LEN S CHAR=$E(VAR,I) I '((CHAR?1A)!(CHAR?1N)) S GOOD=0 Q | 
|---|
|  | 104 | Q GOOD | 
|---|
|  | 105 | ID1 ;writes identifier for subcolumn of selection list (file 357.2) | 
|---|
|  | 106 | N NODE,TYPE,PIECE,IEN | 
|---|
|  | 107 | S NODE=$G(^(0)) Q:NODE="" | 
|---|
|  | 108 | W "HEADER=",$$PADRIGHT^IBDFU($P(NODE,U,2),27)_"  CONTENT=" | 
|---|
|  | 109 | I $P(NODE,U,4)=1 D | 
|---|
|  | 110 | .S TYPE=$P($G(^IBE(357.2,D0,0)),"^",11) Q:'TYPE | 
|---|
|  | 111 | .S PIECE=+$P(NODE,U,5) | 
|---|
|  | 112 | .W:'PIECE "#COUNT" | 
|---|
|  | 113 | .W:PIECE $$DATANAME^IBDFU1B(TYPE,PIECE) | 
|---|
|  | 114 | I $P(NODE,U,4)=2 D | 
|---|
|  | 115 | .S TYPE=$P(NODE,U,6) Q:'TYPE | 
|---|
|  | 116 | .W $P($G(^IBE(357.91,TYPE,0)),U) | 
|---|
|  | 117 | Q | 
|---|
|  | 118 | ; | 
|---|
|  | 119 | DFLTS() ;returns the default form if found, 0 otherwise | 
|---|
|  | 120 | N FORM | 
|---|
|  | 121 | S FORM=0 F  S FORM=$O(^IBE(357,"B","DEFAULTS",FORM)) Q:'FORM  Q:$P($G(^IBE(357,FORM,0)),"^",7) | 
|---|
|  | 122 | Q FORM | 
|---|
|  | 123 | ; | 
|---|
|  | 124 | OKPIECE(PI,PIECE) ;returns 1 if the piece=PIECE is selectable for the package interface=PI, 0 otherwise | 
|---|
|  | 125 | ; | 
|---|
|  | 126 | I ('$G(PIECE))!('$G(PI)) Q 0 | 
|---|
|  | 127 | N QUIT S QUIT=0 | 
|---|
|  | 128 | I PIECE=1 S QUIT=$S($P($G(^IBE(357.6,PI,2)),"^",17)'=0:1,1:0) | 
|---|
|  | 129 | I PIECE'=1 S QUIT=$D(^IBE(357.6,PI,15,"C",PIECE)) | 
|---|
|  | 130 | Q QUIT | 
|---|