| 1 | IBDF9A3 ;ALB/CJM - ENCOUNTER FORM - (create,edit,delete selection list - continued) ;NOV 5,1994 | 
|---|
| 2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997 | 
|---|
| 3 | ; | 
|---|
| 4 | GETSC(ARY,LIST) ;makes a list of subcolumns having text | 
|---|
| 5 | N SC,NODE | 
|---|
| 6 | S SC=0 F  S SC=$O(^IBE(357.2,LIST,2,SC)) Q:'SC  S NODE=$G(^IBE(357.2,LIST,2,SC,0)) I $P(NODE,"^",4)=1 S ARY(+NODE)=$P(NODE,"^",5) | 
|---|
| 7 | Q | 
|---|
| 8 | DELSC(LIST,SC) ;delete subcolumn=SC for selections on LIST | 
|---|
| 9 | N SLCTN,SCIEN | 
|---|
| 10 | K DA,DIK | 
|---|
| 11 | S SLCTN=0 F  S SLCTN=$O(^IBE(357.3,"C",LIST,SLCTN)) Q:'SLCTN  S SCIEN=0 F  S SCIEN=$O(^IBE(357.3,SLCTN,1,"B",SC,SCIEN)) Q:'SCIEN  D | 
|---|
| 12 | .I $P($G(^IBE(357.3,SLCTN,1,SCIEN,0)),"^")=SC D | 
|---|
| 13 | ..S DIK="^IBE(357.3,"_SLCTN_",1,",DA(1)=SLCTN,DA=SCIEN D ^DIK | 
|---|
| 14 | .E  D | 
|---|
| 15 | ..K ^IBE(357.3,SLCTN,1,"B",SC,SCIEN) | 
|---|
| 16 | ..S DIK="^IBE(357.3,SLCTN,1,",DA(1)=SLCTN,DA=SCIEN D IX^DIK | 
|---|
| 17 | K DIK,DA | 
|---|
| 18 | Q | 
|---|
| 19 | ADDSC(LIST,SC) ;ADD subcolumn=SC for selections on LIST if not already there, else set to blank | 
|---|
| 20 | N SLCTN,SCIEN ;,IBNEWSC,IBFLG | 
|---|
| 21 | ;S IBNEWSC=IBSCNEW(SC) | 
|---|
| 22 | ;S IBTHERE=0 | 
|---|
| 23 | ;F  S IBTHERE=$O(IBSCOLD(IBTHERE)) Q:'IBTHERE D  Q:$D(IBFLG) | 
|---|
| 24 | ;.;I IBNEWSC=IBTHERE S IBFLG=1 Q | 
|---|
| 25 | ;.;I IBNEWSC=3,IBTHERE=2 S IBFLG=1 Q | 
|---|
| 26 | ;I $D(IBFLG) D | 
|---|
| 27 | ;.;I IBTHERE=IBNEWSC W !!,"The new subcolum "_IBNEWSC_" contains the same | 
|---|
| 28 | ;.;I IBTHERE=IBNEWSC W !!,"The new subcolum "_IBNEWSC_" contains the samedata as the the new subcolumn.",!,"**New subcolumn deleted**" | 
|---|
| 29 | ;W "The new subcolum "_IBNEWSC_" contains the samedata as the the new subcolumn, but different subcolumn width. ** Change subcolumn width**",!,"**New subcolumn deleted**" | 
|---|
| 30 | S SLCTN=0 F  S SLCTN=$O(^IBE(357.3,"C",LIST,SLCTN)) Q:'SLCTN  D | 
|---|
| 31 | .;re-index the record, to insure it is good | 
|---|
| 32 | .K DIK,DA S DIK="^IBE(357.3,",DA=SLCTN D IX^DIK | 
|---|
| 33 | .S SCIEN=$O(^IBE(357.3,SLCTN,1,"B",SC,0)) | 
|---|
| 34 | .; | 
|---|
| 35 | .;should be empty if it already exists | 
|---|
| 36 | .I SCIEN S $P(^IBE(357.3,SLCTN,1,SCIEN,0),"^",2)="" Q | 
|---|
| 37 | .; | 
|---|
| 38 | .;it doesnt already exist, so create it | 
|---|
| 39 | .K DA,DIC,DO,DINUM | 
|---|
| 40 | .S DIC="^IBE(357.3,"_SLCTN_",1,",DA(1)=SLCTN,X=SC,DIC(0)="" D FILE^DICN | 
|---|
| 41 | K DIC,DO,DA,DIK | 
|---|
| 42 | Q | 
|---|
| 43 | ; | 
|---|
| 44 | OTHER ; | 
|---|
| 45 | N INPUT,NODE | 
|---|
| 46 | S NODE=$G(^IBE(357.6,16,0)) | 
|---|
| 47 | S INPUT("NARRATIVE")=$P(NODE,"^"),INPUT("NARRATIVE","NAME")=$P(NODE,"^",2),INPUT("NARRATIVE","DATATYPE")=$P(NODE,"^",3),INPUT("CODE")=$P(NODE,"^",4),INPUT("CODE","NAME")=$P(NODE,"^",6),INPUT("CODE","DATATYPE")=$P(NODE,"^",7) | 
|---|
| 48 | Q | 
|---|
| 49 | SCLOOP ;  -- Looping thru the subc setting up array(type of data)=subcolumn | 
|---|
| 50 | S (IBSC3,IBSC4)=0 | 
|---|
| 51 | F  S IBSC3=$O(^IBE(357.2,IBLIST,2,"B",IBSC3)) Q:'IBSC3  F  S IBSC4=$O(^IBE(357.2,IBLIST,2,"B",IBSC3,IBSC4)) Q:'IBSC4  I $P($G(^IBE(357.2,IBLIST,2,IBSC4,0)),"^",5)]"" D | 
|---|
| 52 | .S IBSCRAY($P($G(^IBE(357.2,IBLIST,2,IBSC4,0)),"^",5))=$P($G(^IBE(357.2,IBLIST,2,IBSC4,0)),"^",1) | 
|---|
| 53 | Q | 
|---|
| 54 | SCDEL ;  -- Deletes the new subcolumn if there is already a column for that | 
|---|
| 55 | ;     type of data. | 
|---|
| 56 | N DA,DIK | 
|---|
| 57 | I "^1^2^3^"'[X Q | 
|---|
| 58 | I IBSC1(IBSC1)'="^",X'=$P(IBSC1(IBSC1),"^",2) S X=$P(IBSC1(IBSC1),"^",2) S $P(^IBE(357.2,D0,2,D1,0),"^",5)=X D MSG1 Q | 
|---|
| 59 | Q:IBSC1(IBSC1)'="^" | 
|---|
| 60 | ;S DIK="^IBE(357.2,",DA=IBSC1 | 
|---|
| 61 | I "^1^2^3^"[X I $D(IBSCRAY(X)) D DIK Q | 
|---|
| 62 | ;I X=2 I $D(IBSCRAY(3)) D DIK Q | 
|---|
| 63 | ;I X=3 I $D(IBSCRAY(2)) D DIK Q | 
|---|
| 64 | ;K DA,DIK Q | 
|---|
| 65 | Q | 
|---|
| 66 | DIK ;  -- KILL SUBCOLUMN GLOBAL | 
|---|
| 67 | W !!,"*** SUBCOUMN "_IBSC1_" DELETED ***",!,"This data already exists in subcolumn "_IBSCRAY(X)_". Go in and edit its subcolumn number.",!! | 
|---|
| 68 | S DIK="^IBE(357.2,"_D0_",2,",DA(1)=D0,DA=D1 D ^DIK | 
|---|
| 69 | S IBDFFLG=1 | 
|---|
| 70 | ;K DA,DIK Q | 
|---|
| 71 | Q | 
|---|
| 72 | MSG1 ; | 
|---|
| 73 | W !!,"*** PREVENTING LOSS OF DATA - THIS FIELD CAN NOT BE EDITED ***",!,"You will need to add a new subcolumn to update this information",!! | 
|---|
| 74 | Q | 
|---|