| 1 | IBDFU2A ;ALB/CJM - ENCOUNTER FORM - BUILD FORM(copying blocks - continued from IBDFU2) ; 08-JAN-1993
|
---|
| 2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997
|
---|
| 3 | ;
|
---|
| 4 | COPYLINE(LINE,OLDBLOCK,NEWBLOCK,FROMFILE,TOFILE) ;copys LINE from OLDBLOCK,FROMFILE to newly created NEWBLOCK,TOFILE
|
---|
| 5 | Q:('$G(LINE))!('$G(OLDBLOCK))!('$G(NEWBLOCK))!('$G(FROMFILE))!('$G(TOFILE))
|
---|
| 6 | Q:(FROMFILE'=357.7)&(FROMFILE'=358.7)
|
---|
| 7 | Q:(TOFILE'=357.7)&(TOFILE'=358.7)
|
---|
| 8 | N NODE,NAME,NEWLINE
|
---|
| 9 | S NEWLINE=""
|
---|
| 10 | S NODE=$G(^IBE(FROMFILE,LINE,0)) Q:NODE=""
|
---|
| 11 | ;make sure the line really belongs to the block being copied - if not re-index it
|
---|
| 12 | I $P(NODE,"^",6)'=OLDBLOCK K DA S DA=LINE,DIK="^IBE("_FROMFILE_"," D IX^DIK K DIK Q
|
---|
| 13 | S NAME=$P(NODE,"^",1),$P(NODE,"^",6)=NEWBLOCK
|
---|
| 14 | K DIC,DO,DINUM,DD S DIC="^IBE("_TOFILE_",",X=NAME,DIC(0)=""
|
---|
| 15 | D FILE^DICN K DIC,DIE,DA
|
---|
| 16 | S NEWLINE=$S(+Y<0:"",1:+Y)
|
---|
| 17 | Q:'NEWLINE
|
---|
| 18 | S ^IBE(TOFILE,NEWLINE,0)=NODE
|
---|
| 19 | K DIK,DA S DIK="^IBE("_TOFILE_",",DA=NEWLINE
|
---|
| 20 | D IX1^DIK K DIK,DA
|
---|
| 21 | Q
|
---|
| 22 | ;
|
---|
| 23 | COPYTEXT(TEXT,OLDBLOCK,NEWBLOCK,FROMFILE,TOFILE) ;copies TEXT in OLDBLOCK,FROMFILE to NEWBLOCK,TOFILE
|
---|
| 24 | Q:('$G(TEXT))!('$G(OLDBLOCK))!('$G(NEWBLOCK))!('$G(FROMFILE))!('$G(TOFILE))
|
---|
| 25 | Q:(FROMFILE'=357.8)&(FROMFILE'=358.8)
|
---|
| 26 | Q:(TOFILE'=357.8)&(TOFILE'=358.8)
|
---|
| 27 | N NODE,NAME,NEWTEXT,TLINE
|
---|
| 28 | S NEWTEXT=""
|
---|
| 29 | S NODE=$G(^IBE(FROMFILE,TEXT,0)) Q:NODE=""
|
---|
| 30 | ;make sure the text area really belongs to the block being copied - re-index if not
|
---|
| 31 | I ($P(NODE,"^",2)'=OLDBLOCK) K DA S DA=TEXT,DIK="^IBE("_FROMFILE_"," D IX^DIK K DIK Q
|
---|
| 32 | S NAME=$P(NODE,"^",1),$P(NODE,"^",2)=NEWBLOCK
|
---|
| 33 | K DIC,DO,DINUM,DD S DIC="^IBE("_TOFILE_",",X=NAME,DIC(0)=""
|
---|
| 34 | D FILE^DICN K DIC,DIE,DA
|
---|
| 35 | S NEWTEXT=$S(+Y<0:"",1:+Y)
|
---|
| 36 | Q:'NEWTEXT
|
---|
| 37 | S ^IBE(TOFILE,NEWTEXT,0)=NODE
|
---|
| 38 | ;now copy the word-processing field
|
---|
| 39 | S NODE=$G(^IBE(FROMFILE,TEXT,1,0)) I NODE'="" S ^IBE(TOFILE,NEWTEXT,1,0)=NODE S TLINE=0 F S TLINE=$O(^IBE(FROMFILE,TEXT,1,TLINE)) Q:'TLINE S NODE=$G(^IBE(FROMFILE,TEXT,1,TLINE,0)) S:NODE'="" ^IBE(TOFILE,NEWTEXT,1,TLINE,0)=NODE
|
---|
| 40 | K DIK,DA S DIK="^IBE("_TOFILE_",",DA=NEWTEXT
|
---|
| 41 | D IX1^DIK K DIK,DA
|
---|
| 42 | Q
|
---|
| 43 | ;
|
---|
| 44 | COPYFLD(FLD,OLDBLOCK,NEWBLOCK,FROMFILE,TOFILE) ;copies a display field=FLD in FROMFILE to NEWBLOCK in TOFILE
|
---|
| 45 | Q:('$G(FLD))!('$G(OLDBLOCK))!('$G(NEWBLOCK))!('$G(FROMFILE))!('$G(TOFILE))
|
---|
| 46 | Q:(FROMFILE'=357.5)&(FROMFILE'=358.5)
|
---|
| 47 | Q:(TOFILE'=357.5)&(TOFILE'=358.5)
|
---|
| 48 | N NODE,NAME,NEWFLD,SUBFLD
|
---|
| 49 | S NEWFLD=""
|
---|
| 50 | S NODE=$G(^IBE(FROMFILE,FLD,0)) Q:NODE=""
|
---|
| 51 | ;make sure the field really belongs to the block being copied - if not re-index it
|
---|
| 52 | I ($P(NODE,"^",2)'=OLDBLOCK) K DA S DA=FLD,DIK="^IBE("_FROMFILE_"," D IX^DIK K DIK Q
|
---|
| 53 | S NAME=$P(NODE,"^",1),$P(NODE,"^",2)=NEWBLOCK
|
---|
| 54 | Q:NAME="" ;corrupted data
|
---|
| 55 | S:$P(NODE,"^",3) $P(NODE,"^",3)=$$GETPI^IBDFU2B($P(NODE,"^",3),$S(FROMFILE[358:358.6,1:357.6),$S(TOFILE[358:358.6,1:357.6))
|
---|
| 56 | K DIC,DO,DINUM,DD S DIC="^IBE("_TOFILE_",",X=NAME,DIC(0)=""
|
---|
| 57 | D FILE^DICN K DIC,DIE,DA
|
---|
| 58 | S NEWFLD=$S(+Y<0:"",1:+Y)
|
---|
| 59 | Q:'NEWFLD
|
---|
| 60 | S ^IBE(TOFILE,NEWFLD,0)=NODE
|
---|
| 61 | ;now copy the subfields
|
---|
| 62 | S NODE=$G(^IBE(FROMFILE,FLD,2,0))
|
---|
| 63 | I NODE'="" S $P(NODE,"^",2)=TOFILE_2,^IBE(TOFILE,NEWFLD,2,0)=NODE S SUBFLD=0 F S SUBFLD=$O(^IBE(FROMFILE,FLD,2,SUBFLD)) Q:'SUBFLD S NODE=$G(^IBE(FROMFILE,FLD,2,SUBFLD,0)) S:NODE'="" ^IBE(TOFILE,NEWFLD,2,SUBFLD,0)=NODE
|
---|
| 64 | K DIK,DA S DIK="^IBE("_TOFILE_",",DA=NEWFLD
|
---|
| 65 | D IX1^DIK K DIK,DA
|
---|
| 66 | Q
|
---|
| 67 | ;
|
---|
| 68 | COPYMFLD(FLD,OLDBLOCK,NEWBLOCK,FROMFILE,TOFILE) ;copies MUTLIPLE CHOICE FIELD=FLD in FROMFILE to NEWBLOCK in TOFILE
|
---|
| 69 | Q:('$G(FLD))!('$G(OLDBLOCK))!('$G(NEWBLOCK))!('$G(FROMFILE))!('$G(TOFILE))
|
---|
| 70 | Q:(FROMFILE'=357.93)&(FROMFILE'=358.93)
|
---|
| 71 | Q:(TOFILE'=357.93)&(TOFILE'=358.93)
|
---|
| 72 | N NODE,NAME,NEWFLD,SUBFLD,FROMPI
|
---|
| 73 | S NEWFLD=""
|
---|
| 74 | S NODE=$G(^IBE(FROMFILE,FLD,0)) Q:NODE=""
|
---|
| 75 | ;make sure the field really belongs to the block being copied - if not re-index it
|
---|
| 76 | I ($P(NODE,"^",8)'=OLDBLOCK) K DA S DA=FLD,DIK="^IBE("_FROMFILE_"," D IX^DIK K DIK Q
|
---|
| 77 | S NAME=$P(NODE,"^",1),$P(NODE,"^",8)=NEWBLOCK
|
---|
| 78 | Q:NAME="" ;corrupted data
|
---|
| 79 | S FROMPI=$P(NODE,"^",6)
|
---|
| 80 | S:FROMPI $P(NODE,"^",6)=$$GETPI^IBDFU2B(FROMPI,$S(FROMFILE[358:358.6,1:357.6),$S(TOFILE[358:358.6,1:357.6))
|
---|
| 81 | K DIC,DO,DINUM,DD S DIC="^IBE("_TOFILE_",",X=NAME,DIC(0)=""
|
---|
| 82 | D FILE^DICN K DIC,DIE,DA
|
---|
| 83 | S NEWFLD=$S(+Y<0:"",1:+Y)
|
---|
| 84 | Q:'NEWFLD
|
---|
| 85 | S ^IBE(TOFILE,NEWFLD,0)=NODE
|
---|
| 86 | ;
|
---|
| 87 | ;now copy the subfields=the choices
|
---|
| 88 | ;don't copy choices for export if there is no package interface or choices are not exportable
|
---|
| 89 | I FROMPI,(FROMFILE=TOFILE)!($P($G(^IBE($S(FROMFILE[358:358.6,1:357.6),FROMPI,2)),"^",18)) D
|
---|
| 90 | .S NODE=$G(^IBE(FROMFILE,FLD,1,0)) I NODE'="" S $P(NODE,"^",2)=TOFILE_1,^IBE(TOFILE,NEWFLD,1,0)=NODE S SUBFLD=0 F S SUBFLD=$O(^IBE(FROMFILE,FLD,1,SUBFLD)) Q:'SUBFLD S NODE=$G(^IBE(FROMFILE,FLD,1,SUBFLD,0)) D
|
---|
| 91 | ..S:$P(NODE,"^",9) $P(NODE,"^",9)=$$GETQLFR^IBDFU2B($P(NODE,"^",9),$S(FROMFILE[358:358.98,1:357.98),$S(TOFILE[358:358.98,1:357.98))
|
---|
| 92 | ..S:NODE'="" ^IBE(TOFILE,NEWFLD,1,SUBFLD,0)=NODE
|
---|
| 93 | ;
|
---|
| 94 | ;index the new field
|
---|
| 95 | K DIK,DA S DIK="^IBE("_TOFILE_",",DA=NEWFLD
|
---|
| 96 | D IX1^DIK
|
---|
| 97 | K DIK,DA
|
---|
| 98 | Q
|
---|
| 99 | ;
|
---|
| 100 | COPYHFLD(FLD,OLDBLOCK,NEWBLOCK,FROMFILE,TOFILE) ;copies HAND PRINT FIELD=FLD in FROMFILE to NEWBLOCK in TOFILE
|
---|
| 101 | Q:('$G(FLD))!('$G(OLDBLOCK))!('$G(NEWBLOCK))!('$G(FROMFILE))!('$G(TOFILE))
|
---|
| 102 | Q:(FROMFILE'=359.94)&(FROMFILE'=358.94)
|
---|
| 103 | Q:(TOFILE'=359.94)&(TOFILE'=358.94)
|
---|
| 104 | N NODE,NAME,NEWFLD,SUBFLD
|
---|
| 105 | S NEWFLD=""
|
---|
| 106 | S NODE=$G(^IBE(FROMFILE,FLD,0)) Q:NODE=""
|
---|
| 107 | ;make sure the field really belongs to the block being copied - if not re-index it
|
---|
| 108 | I ($P(NODE,"^",8)'=OLDBLOCK) K DA S DA=FLD,DIK="^IBE("_FROMFILE_"," D IX^DIK K DIK Q
|
---|
| 109 | S NAME=$P(NODE,"^",1),$P(NODE,"^",8)=NEWBLOCK
|
---|
| 110 | Q:NAME="" ;corrupted data
|
---|
| 111 | S:$P(NODE,"^",6) $P(NODE,"^",6)=$$GETPI^IBDFU2B($P(NODE,"^",6),$S(FROMFILE[358:358.6,1:357.6),$S(TOFILE[358:358.6,1:357.6))
|
---|
| 112 | S:$P(NODE,"^",10) $P(NODE,"^",10)=$$GETADE^IBDFU2B($P(NODE,"^",10),$S(FROMFILE[358:358.99,1:359.1),$S(TOFILE[358:358.99,1:359.1))
|
---|
| 113 | K DIC,DO,DINUM,DD S DIC="^IBE("_TOFILE_",",X=NAME,DIC(0)=""
|
---|
| 114 | D FILE^DICN K DIC,DIE,DA
|
---|
| 115 | S NEWFLD=$S(+Y<0:"",1:+Y)
|
---|
| 116 | Q:'NEWFLD
|
---|
| 117 | S ^IBE(TOFILE,NEWFLD,0)=NODE
|
---|
| 118 | K DIK,DA S DIK="^IBE("_TOFILE_",",DA=NEWFLD
|
---|
| 119 | D IX1^DIK K DIK,DA
|
---|
| 120 | Q
|
---|
| 121 | ;
|
---|
| 122 | COPYGRP(GRP,LIST,NEWLIST,BLOCK,FROMFILE,TOFILE) ;
|
---|
| 123 | Q:(FROMFILE'=357.4)&(FROMFILE'=358.4)
|
---|
| 124 | Q:(TOFILE'=357.4)&(TOFILE'=358.4)
|
---|
| 125 | N NODE,HDR,NEWGRP,SLCTN,FROM,TO
|
---|
| 126 | S NEWGRP=""
|
---|
| 127 | S NODE=$G(^IBE(FROMFILE,GRP,0)) Q:NODE=""
|
---|
| 128 | ;make sure group belongs to list - otherwise re-index
|
---|
| 129 | I $P(NODE,"^",3)'=LIST K DA S DA=GRP,DIK="^IBE("_FROMFILE_"," D IX^DIK K DIK Q
|
---|
| 130 | S HDR=$P(NODE,"^",1),$P(NODE,"^",3)=NEWLIST
|
---|
| 131 | Q:HDR=""
|
---|
| 132 | K DIC,DD,DO,DINUM S DIC="^IBE("_TOFILE_",",X=HDR,DIC(0)=""
|
---|
| 133 | D FILE^DICN K DIC,DIE,DA
|
---|
| 134 | S NEWGRP=$S(+Y<0:"",1:+Y)
|
---|
| 135 | Q:'NEWGRP
|
---|
| 136 | S ^IBE(TOFILE,NEWGRP,0)=NODE
|
---|
| 137 | S NODE=0 F S NODE=$O(^IBE(FROMFILE,GRP,NODE)) Q:'NODE S ^IBE(TOFILE,NEWGRP,NODE)=$G(^IBE(FROMFILE,GRP,NODE))
|
---|
| 138 | K DIK,DA S DIK="^IBE("_TOFILE_",",DA=NEWGRP
|
---|
| 139 | D IX1^DIK K DIK,DA
|
---|
| 140 | S FROM=$S(FROMFILE[358:358.3,1:357.3),TO=$S(TOFILE[358:358.3,1:357.3)
|
---|
| 141 | S SLCTN="" F S SLCTN=$O(^IBE(FROM,"D",GRP,SLCTN)) Q:'SLCTN D CPYSLCTN^IBDFU2B(SLCTN,GRP,NEWGRP,LIST,NEWLIST,FROM,TO)
|
---|
| 142 | Q
|
---|