| 1 | GECSXMAP ;WISC/RFJ-build template map                               ;01 Nov 93
 | 
|---|
| 2 |  ;;2.0;GCS;;MAR 14, 1995
 | 
|---|
| 3 |  W !,"This program deletes template maps and recreates them",!,"from the input templates found in file 2101.4.",!
 | 
|---|
| 4 |  N %,GECSITDA
 | 
|---|
| 5 |  S XP="Do you want to recreate all template maps"
 | 
|---|
| 6 |  S %=$$YN^GECSUTIL(2) I '% Q
 | 
|---|
| 7 |  I %=1 D ALLMAPS Q
 | 
|---|
| 8 |  ;  ask template, build map
 | 
|---|
| 9 |  F  S GECSITDA=$$SELTEMP Q:'GECSITDA  D BUILD(GECSITDA)
 | 
|---|
| 10 |  Q
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 | ALLMAPS ;  build all maps
 | 
|---|
| 14 |  N DIC,GECSITDA,X,Y
 | 
|---|
| 15 |  S GECSITDA=0 F  S GECSITDA=$O(^GECS(2101.4,GECSITDA)) Q:'GECSITDA  D
 | 
|---|
| 16 |  .   S X=$P(^GECS(2101.4,GECSITDA,0),"^")
 | 
|---|
| 17 |  .   S DIC=2101.4,DIC(0)="MZ" D ^DIC
 | 
|---|
| 18 |  .   I Y>0 W !,Y(0,0) D BUILD(GECSITDA)
 | 
|---|
| 19 |  Q
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 | BUILD(GECSITDA)      ;  build template gecsitda
 | 
|---|
| 23 |  N %,GECSMAP,GECSNM
 | 
|---|
| 24 |  S GECSNM=$P($G(^GECS(2101.4,GECSITDA,0)),"^") I GECSNM="" W "  INPUT TEMPLATE DOES NOT EXIST IN FILE 2101.4." Q
 | 
|---|
| 25 |  S %=$O(^DIE("B",GECSNM,0)) I '% W "  INPUT TEMPLATE NOT FOUND IN FILEMANAGER." Q
 | 
|---|
| 26 |  D GETMAP(%) I '$D(GECSMAP) Q
 | 
|---|
| 27 |  K ^GECS(2101.4,GECSITDA,1) F %=1:1 Q:'$D(GECSMAP(%))  S ^GECS(2101.4,GECSITDA,1,%,0)=GECSMAP(%)
 | 
|---|
| 28 |  S ^GECS(2101.4,GECSITDA,1,0)="^2101.41^"_(%-1)_"^"_(%-1)
 | 
|---|
| 29 |  W ?40,"---Done---"
 | 
|---|
| 30 |  Q
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 | FIELD ;  loop fields in dr string
 | 
|---|
| 34 |  N GECSMAP1
 | 
|---|
| 35 |  F DRPIECE=1:1 S FIELDDA=$P(GECSTRIN,";",DRPIECE) Q:FIELDDA=""  I +FIELDDA>0,$D(^DD(2100,+FIELDDA,0)) S DATADICT=^(0) D
 | 
|---|
| 36 |  .   ;  single field
 | 
|---|
| 37 |  .   I $P(DATADICT,"^",2)?1A.E D  Q
 | 
|---|
| 38 |  .   .   S GECSMAP(GECSMAP)=GECSMAP(GECSMAP)_+FIELDDA_";"_$P(DATADICT,"^",4)_"\"
 | 
|---|
| 39 |  .   .   I $L(GECSMAP(GECSMAP))>200 S GECSMAP=GECSMAP+1,GECSMAP(GECSMAP)=""
 | 
|---|
| 40 |  .   ;  multiple field
 | 
|---|
| 41 |  .   I GECSMAP(GECSMAP)'="" S GECSMAP=GECSMAP+1,GECSMAP(GECSMAP)=""
 | 
|---|
| 42 |  .   S (GECSGLOB,GECSMAP(GECSMAP))=FIELDDA_","_$P($P(DATADICT,"^",4),";")_","_+$P(DATADICT,"^",2)
 | 
|---|
| 43 |  .   S GECSTR=DRSTRING(2,+$P(DATADICT,"^",2))
 | 
|---|
| 44 |  .   S GECSNEXT=1,GECSPIEC=1,GECSMAP1=1
 | 
|---|
| 45 |  .   F  D  Q:'GECSPIEC
 | 
|---|
| 46 |  .   .   S FIELDDA=$P(GECSTR,";",GECSPIEC),GECSPIEC=GECSPIEC+1
 | 
|---|
| 47 |  .   .   I +FIELDDA>0,$D(^DD(+$P(DATADICT,"^",2),+FIELDDA,0)) S GECSMAP(GECSMAP,GECSMAP1)=$G(GECSMAP(GECSMAP,GECSMAP1))_+FIELDDA_";"_$P(^(0),"^",4)_"\"
 | 
|---|
| 48 |  .   .   I $P(GECSTR,";",GECSPIEC)="" S GECSTR=$G(DRSTRING(2,+$P(DATADICT,"^",2),GECSNEXT)),GECSNEXT=GECSNEXT+1,GECSPIEC=1 I GECSTR="" S GECSPIEC=0 Q
 | 
|---|
| 49 |  .   .   I $L(GECSMAP(GECSMAP,GECSMAP1))>200 S GECSMAP1=GECSMAP1+1
 | 
|---|
| 50 |  .    S GECSMAP=GECSMAP+1,GECSMAP(GECSMAP)=""
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 | GETMAP(GECSDIE) ;  get the template map for input template gecsdie
 | 
|---|
| 55 |  ;  returns gecsmap() array
 | 
|---|
| 56 |  N DATADICT,DRPIECE,DRSTRING,FIELDDA,GECSDRDA,GECSGLOB,GECSNEXT,GECSPIEC,GECSTRIN,GECSTR,I,J,K,X
 | 
|---|
| 57 |  K GECSMAP
 | 
|---|
| 58 |  I '$D(^DIE(GECSDIE)) Q
 | 
|---|
| 59 |  F I=0:0 S I=$O(^DIE(GECSDIE,"DR",I)) Q:I=""  F J=0:0 S J=$O(^DIE(GECSDIE,"DR",I,J)) Q:J=""  S DRSTRING(I,J)=^DIE(GECSDIE,"DR",I,J) F K=0:0 S K=$O(^DIE(GECSDIE,"DR",I,J,K)) Q:'K  S DRSTRING(I,J,K)=^(K)
 | 
|---|
| 60 |  I '$D(DRSTRING(1,2100)) W "   NOT AN INPUT TEMPLATE FOR FILE 2100!  MAP NOT BUILT!",! Q
 | 
|---|
| 61 |  S GECSMAP=1,GECSMAP(1)=""
 | 
|---|
| 62 |  S GECSTRIN=DRSTRING(1,2100) D FIELD
 | 
|---|
| 63 |  S GECSDRDA=0 F  S GECSDRDA=$O(DRSTRING(1,2100,GECSDRDA)) Q:'GECSDRDA  S GECSTRIN=DRSTRING(1,2100,GECSDRDA) D FIELD
 | 
|---|
| 64 |  Q
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 | SELTEMP() ;  select template
 | 
|---|
| 68 |  N %,%Y,DA,DIC,DLAYGO,X,Y
 | 
|---|
| 69 |  S DIC("A")="Select Template Name: ",DIC=2101.4,DIC(0)="LAEMNZ",DLAYGO=2101.4
 | 
|---|
| 70 |  W ! D ^DIC
 | 
|---|
| 71 |  Q $S(+Y>0:+Y,1:0)
 | 
|---|