| 1 | IBDF9A1 ;ALB/CJM - ENCOUNTER FORM - (create,edit,delete selection list - continued) ;FEB 1,1993 | 
|---|
| 2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997 | 
|---|
| 3 | ; | 
|---|
| 4 | NEWLIST ;creates a new list | 
|---|
| 5 | ;expects IBBLK to be defined | 
|---|
| 6 | N IBLIST,IBLEN,IBP,IBRTN,NAME,IBDELETE,IBDYN,IBINPUT,IBDFLTF,IBDFLTB,IBDFLTL | 
|---|
| 7 | S (IBDFLTF,IBDFLTB,IBDFLTL,IBOLD,IBLIST)=0,VALMBCK="R" | 
|---|
| 8 | D FULL^VALM1 | 
|---|
| 9 | S IBRTN=$$RTN^IBDF9A Q:'IBRTN | 
|---|
| 10 | S IBDFLTF=$$DFLTS^IBDFU5 D:IBDFLTF | 
|---|
| 11 | .S IBDFLTB=0 F  S IBDFLTB=$O(^IBE(357.1,"C",IBDFLTF,IBDFLTB)) Q:'IBDFLTB  D  Q:IBDFLTL | 
|---|
| 12 | ..S IBDFLTL=0 F  S IBDFLTL=$O(^IBE(357.2,"C",IBDFLTB,IBDFLTL)) Q:'IBDFLTL  Q:$P($G(^IBE(357.2,IBDFLTL,0)),"^",11)=IBRTN | 
|---|
| 13 | I IBDFLTL D  Q:IBLIST | 
|---|
| 14 | .S IBLIST=$$COPYLIST^IBDFU2(IBDFLTL,IBDFLTB,IBBLK,357.2,357.2) | 
|---|
| 15 | .Q:'IBLIST | 
|---|
| 16 | .K DIE,DA,DR S DIE=357.2,DA=IBLIST,DR="[IBDF POSITION/SIZE COLUMNS]",DIE("NO^")="BACKOUTOK" D ^DIE K DIE,DR,DA | 
|---|
| 17 | .S VALMBCK="R" D UNCMPBLK^IBDF19(IBBLK),IDXBLOCK^IBDFU4 | 
|---|
| 18 | S NAME=$$NEWNAME^IBDF9A Q:NAME=-1 | 
|---|
| 19 | K DIC,DIE,DD,DO,DINUM,DA | 
|---|
| 20 | N DLAYGO | 
|---|
| 21 | S DIC="^IBE(357.2,",DIC(0)="FL",X=NAME,DLAYGO=357.2 | 
|---|
| 22 | D FILE^DICN K DIC,DA | 
|---|
| 23 | S IBLIST=$S(+Y<0:"",1:+Y) | 
|---|
| 24 | I 'IBLIST D | 
|---|
| 25 | .W !,"Unable to create a new selection list!" D PAUSE^IBDFU5 | 
|---|
| 26 | I IBLIST D | 
|---|
| 27 | .D DLISTCNT^IBDFU3(IBLIST,357.2) ;deletes anything that may have been left lying around that now points to IBLIST | 
|---|
| 28 | .K DIE,DA,DR S DIE=357.2,DA=IBLIST,DR="[IBDF EDIT SELECTION LIST]",DIE("NO^")="BACKOUTOK" D ^DIE K DIE,DR,DA | 
|---|
| 29 | .I IBDELETE K DA S DIK="^IBE(357.2,",DA=IBLIST D ^DIK K DIK,DA | 
|---|
| 30 | .I IBLIST,'IBDELETE D ADDGROUP("BLANK",0) | 
|---|
| 31 | .D UNCMPBLK^IBDF19(IBBLK),IDXBLOCK^IBDFU4 | 
|---|
| 32 | S VALMBCK="R" | 
|---|
| 33 | Q | 
|---|
| 34 | ADDGROUP(NAME,ORDER) ;adds a group to the selection list=IBLIST | 
|---|
| 35 | N GROUP | 
|---|
| 36 | K DIC,DIE,DD,DO,DINUM,DA | 
|---|
| 37 | N DLAYGO | 
|---|
| 38 | S DIC="^IBE(357.4,",DIC(0)="FL",X=NAME,DLAYGO=357.4 | 
|---|
| 39 | D FILE^DICN K DIC,DA | 
|---|
| 40 | S GROUP=$S(+Y<0:"",1:+Y) | 
|---|
| 41 | I GROUP D | 
|---|
| 42 | .S NODE=$G(^IBE(357.4,GROUP,0)) S $P(NODE,"^",2)=ORDER,$P(NODE,"^",3)=IBLIST S ^IBE(357.4,GROUP,0)=NODE | 
|---|
| 43 | .S DIK="^IBE(357.4,",DA=GROUP D IX1^DIK K DIK,DA | 
|---|
| 44 | Q | 
|---|
| 45 | ; | 
|---|
| 46 | FORMAT ;allows the user to format all of the selections on the list in mass | 
|---|
| 47 | ; | 
|---|
| 48 | ; | 
|---|
| 49 | ;TYPE = type of formating - U=upper case,L=lower case,C=capitalize | 
|---|
| 50 | ;SUBCOL is the subcolumn to format | 
|---|
| 51 | ; | 
|---|
| 52 | N TYPE,SUBCOL,SLCTN | 
|---|
| 53 | ; | 
|---|
| 54 | ;ask for the subcolumn to format | 
|---|
| 55 | S SUBCOL=$$SUBCOL | 
|---|
| 56 | ; | 
|---|
| 57 | ;ask for the type of fomatting | 
|---|
| 58 | S TYPE=$S(SUBCOL:$$TYPE,1:"") | 
|---|
| 59 | ; | 
|---|
| 60 | ;find all the sections to be formatted and do so | 
|---|
| 61 | I TYPE'="",SUBCOL S SLCTN=0 F  S SLCTN=$O(^IBE(357.3,"C",IBLIST,SLCTN)) Q:'SLCTN  D:$P($G(^IBE(357.3,SLCTN,0)),"^",3)=IBLIST CHANGE(SLCTN,SUBCOL,TYPE) | 
|---|
| 62 | ; | 
|---|
| 63 | S VALMBCK="R" | 
|---|
| 64 | Q | 
|---|
| 65 | ; | 
|---|
| 66 | FORMAT2 ;allows the user to format all of the selections in the group in mass | 
|---|
| 67 | ; | 
|---|
| 68 | ; | 
|---|
| 69 | ;TYPE = type of formating - U=upper case,L=lower case,C=capitalize | 
|---|
| 70 | ;SUBCOL is the subcolumn to format | 
|---|
| 71 | ; | 
|---|
| 72 | N TYPE,SUBCOL,SLCTN | 
|---|
| 73 | ; | 
|---|
| 74 | ;ask for the subcolumn to format | 
|---|
| 75 | S SUBCOL=$$SUBCOL | 
|---|
| 76 | ; | 
|---|
| 77 | ;ask forthe type of fomatting | 
|---|
| 78 | S TYPE=$S(SUBCOL:$$TYPE,1:"") | 
|---|
| 79 | ; | 
|---|
| 80 | ;find all the sections to be formatted and do so | 
|---|
| 81 | I TYPE'="",SUBCOL S SLCTN=0 F  S SLCTN=$O(^IBE(357.3,"D",IBGRP,SLCTN)) Q:'SLCTN  D:$P($G(^IBE(357.3,SLCTN,0)),"^",4)=IBGRP CHANGE(SLCTN,SUBCOL,TYPE) | 
|---|
| 82 | ; | 
|---|
| 83 | D IDXSLCTN^IBDF4 | 
|---|
| 84 | S VALMBCK="R" | 
|---|
| 85 | Q | 
|---|
| 86 | ; | 
|---|
| 87 | TYPE() ;ask the user what type of formatting | 
|---|
| 88 | N TYPE S TYPE="" | 
|---|
| 89 | K DIR S DIR(0)="SOB^UPPERCASE:U;LOWERCASE:L;CAPITALIZE:C" | 
|---|
| 90 | S DIR("A")="Select the type of formatting",DIR("B")="C" | 
|---|
| 91 | D ^DIR K DIR | 
|---|
| 92 | I '$D(DIRUT),Y'=-1 S TYPE=Y | 
|---|
| 93 | Q $E(TYPE,1) | 
|---|
| 94 | ; | 
|---|
| 95 | CHANGE(SLCTN,SUBCOL,TYPE) ; | 
|---|
| 96 | ; | 
|---|
| 97 | N DA,NODE,STR | 
|---|
| 98 | S DA=$O(^IBE(357.3,SLCTN,1,"B",SUBCOL,0)) | 
|---|
| 99 | Q:'DA | 
|---|
| 100 | S NODE=$G(^IBE(357.3,SLCTN,1,DA,0)) | 
|---|
| 101 | S STR=$P(NODE,"^",2) | 
|---|
| 102 | D:$L(STR) | 
|---|
| 103 | .I TYPE="U" S STR=$$UP^XLFSTR(STR) | 
|---|
| 104 | .I TYPE="L" S STR=$$LOW^XLFSTR(STR) | 
|---|
| 105 | .I TYPE="C" S STR=$$CAPS(STR) | 
|---|
| 106 | .S $P(^IBE(357.3,SLCTN,1,DA,0),"^",2)=STR | 
|---|
| 107 | Q | 
|---|
| 108 | ; | 
|---|
| 109 | CAPS(STR) ;returns STR with each word in it capitalized | 
|---|
| 110 | N FIRST,I,CHAR,LEN | 
|---|
| 111 | S FIRST=1,LEN=$L(STR) | 
|---|
| 112 | F I=1:1 S CHAR=$E(STR,I) Q:CHAR=""  D | 
|---|
| 113 | .I CHAR?1A,FIRST D | 
|---|
| 114 | ..S FIRST=0,CHAR=$$UP^XLFSTR(CHAR) | 
|---|
| 115 | .E  I CHAR?1A D | 
|---|
| 116 | ..S CHAR=$$LOW^XLFSTR(CHAR) | 
|---|
| 117 | .E  S FIRST=1 | 
|---|
| 118 | .S STR=$E(STR,1,I-1)_CHAR_$E(STR,I+1,LEN) | 
|---|
| 119 | Q STR | 
|---|
| 120 | ; | 
|---|
| 121 | SUBCOL() ;ask what subcolumn to format | 
|---|
| 122 | ;SCLIST - used to record the subcolumns that can be formated - each digit will signify a subcolum | 
|---|
| 123 | ; | 
|---|
| 124 | N SCLIST,NODE,SUBCOL,ANS | 
|---|
| 125 | ;first get the list of subcolumns that can be formatted | 
|---|
| 126 | S SCLIST="",SUBCOL=0 | 
|---|
| 127 | F  S SUBCOL=$O(IBLIST("SCTYPE",SUBCOL)) Q:'SUBCOL  I $G(IBLIST("SCW",SUBCOL)),IBLIST("SCTYPE",SUBCOL)=1,IBLIST("SCEDITABLE",SUBCOL) S SCLIST=SCLIST_","_SUBCOL | 
|---|
| 128 | ;if there is at most one subcolumn that can be edited return that | 
|---|
| 129 | I $L(SCLIST)<3 Q $E(SCLIST,2) | 
|---|
| 130 | ; | 
|---|
| 131 | ;now ask what subcolumn to format | 
|---|
| 132 | AGAIN W !,"What subcolumn do you want formated? Choose from (",$E(SCLIST,2,10),"): " | 
|---|
| 133 | R ANS:DTIME | 
|---|
| 134 | I '$T!(ANS["^") Q "" | 
|---|
| 135 | I ANS?1N,SCLIST[ANS Q ANS | 
|---|
| 136 | G AGAIN | 
|---|
| 137 | Q ANS | 
|---|