| 1 | MAGXCVL ;WOIFO/SEB,MLH - Image File Conversion Utilities & Misc. options ; 15 Jul 2004  10:54 AM
 | 
|---|
| 2 |  ;;3.0;IMAGING;**17,25,31**;Mar 31, 2005
 | 
|---|
| 3 |  ;; +---------------------------------------------------------------+
 | 
|---|
| 4 |  ;; | Property of the US Government.                                |
 | 
|---|
| 5 |  ;; | No permission to copy or redistribute this software is given. |
 | 
|---|
| 6 |  ;; | Use of unreleased versions of this software requires the user |
 | 
|---|
| 7 |  ;; | to execute a written test agreement with the VistA Imaging    |
 | 
|---|
| 8 |  ;; | Development Office of the Department of Veterans Affairs,     |
 | 
|---|
| 9 |  ;; | telephone (301) 734-0100.                                     |
 | 
|---|
| 10 |  ;; |                                                               |
 | 
|---|
| 11 |  ;; | The Food and Drug Administration classifies this software as  |
 | 
|---|
| 12 |  ;; | a medical device.  As such, it may not be changed in any way. |
 | 
|---|
| 13 |  ;; | Modifications to this software may result in an adulterated   |
 | 
|---|
| 14 |  ;; | medical device under 21CFR820, the use of which is considered |
 | 
|---|
| 15 |  ;; | to be a violation of US Federal Statutes.                     |
 | 
|---|
| 16 |  ;; +---------------------------------------------------------------+
 | 
|---|
| 17 |  ;;
 | 
|---|
| 18 |  Q
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 |  ; Entry point for the File Setup option (MAG IMAGE INDEX FILE SETUP)
 | 
|---|
| 21 | EN N FNAME,COUNT,MAGDATA,MAGFLD,MAGID,CT,DR,DIE,DA,%ZIS
 | 
|---|
| 22 |  N IX ; --------- scratch subscript var
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  S COUNT=0
 | 
|---|
| 25 | EN1 ; get the name of the conversion file
 | 
|---|
| 26 |  K DIR S DIR(0)="FOU^3:60"
 | 
|---|
| 27 |  S DIR("A")="Please enter the filename of the conversion file"
 | 
|---|
| 28 |  S DIR("?",1)="Enter a filename (including the path) of a text file"
 | 
|---|
| 29 |  S DIR("?")="containing mapping data."
 | 
|---|
| 30 |  D ^DIR
 | 
|---|
| 31 |  I $G(Y)]"",'$D(DUOUT),'$D(DTOUT)
 | 
|---|
| 32 |  E  S COUNT=-1 G DONE
 | 
|---|
| 33 |  S %ZIS="",%ZIS("HFSNAME")=Y,%ZIS("HFSMODE")="R",IOP="HFS"
 | 
|---|
| 34 |  S X="ERR^"_$T(+0),@^%ZOSF("TRAP")
 | 
|---|
| 35 |  D ^%ZIS I POP=1 W !,"Invalid filename. Please try again." G EN1
 | 
|---|
| 36 |  U IO(0)
 | 
|---|
| 37 | CLEAR ; confirm it's OK to clear before proceeding
 | 
|---|
| 38 |  K DIR S DIR(0)="YU"
 | 
|---|
| 39 |  S DIR("A")="Clear mapping file",DIR("B")="NO"
 | 
|---|
| 40 |  D ^DIR
 | 
|---|
| 41 |  I $D(DUOUT)!$D(DTOUT) G CLOSE
 | 
|---|
| 42 |  I Y K ^XTMP("MAG30P25","MAPPING") W "    File cleared!"
 | 
|---|
| 43 |  U IO(0) W !
 | 
|---|
| 44 |  F CT=1:1 U IO(0) W:CT#10=0 "." U IO R MAGDATA:DTIME Q:$E(MAGDATA,1,7)="$$EOF$$"  D
 | 
|---|
| 45 |  . S MAGDATA=$TR(MAGDATA,$C(9),U),MAGDATA=$TR(MAGDATA,$C(34),"")
 | 
|---|
| 46 |  . I $E(MAGDATA,1,2)="ID"!(MAGDATA="") Q
 | 
|---|
| 47 |  . I $E(MAGDATA,1,7)="Field #" S MAGFLD=$P($E(MAGDATA,8,$L(MAGDATA)),"-") Q
 | 
|---|
| 48 |  . I MAGFLD="" Q
 | 
|---|
| 49 |  . ; To prevent mismatching of IEN keys, do not overwrite the values in the
 | 
|---|
| 50 |  . ; MAG DESCRIPTIVE CATEGORIES File (#2005.81).  Instead, we will later
 | 
|---|
| 51 |  . ; load the values from that (merged-into) file into the mapping file.
 | 
|---|
| 52 |  . I MAGFLD=100 Q
 | 
|---|
| 53 |  . S MAGID=$P(MAGDATA,U)
 | 
|---|
| 54 |  . I MAGFLD=6!(MAGFLD=8)!(MAGFLD=10) S MAGID=$P(MAGDATA,U,2)
 | 
|---|
| 55 |  . I MAGID="" Q
 | 
|---|
| 56 |  . S ^XTMP("MAG30P25","MAPPING",MAGFLD,MAGID)=$P(MAGDATA,U,2,999)
 | 
|---|
| 57 |  . I MAGFLD=16 D DIE(MAGFLD,MAGID,MAGDATA)
 | 
|---|
| 58 |  . Q
 | 
|---|
| 59 |  U IO(0) W !,"Mapping text file load complete.",!
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 |  ; Here is where we will load FROM the MAG DESCRIPTIVE CATEGORIES File
 | 
|---|
| 62 |  ; (#2005.81) INTO the mapping file.  (We used to do it the other way around.)
 | 
|---|
| 63 |  W !,"Loading values from MAG DESCRIPTIVE CATEGORIES..."
 | 
|---|
| 64 |  S IX=0
 | 
|---|
| 65 |  F  S IX=$O(^MAG(2005.81,IX)) Q:'IX  S MAGDATA=$G(^(IX,2)) I MAGDATA]"" D
 | 
|---|
| 66 |  . S ^XTMP("MAG30P25","MAPPING",100,IX)=$P($G(^MAG(2005.81,IX,0)),U)_U_MAGDATA
 | 
|---|
| 67 |  . Q
 | 
|---|
| 68 |  W "done.",!
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 |  ; Now, re-apply local edits from the audit subtree.
 | 
|---|
| 71 |  W !,"Re-applying local edits..."
 | 
|---|
| 72 |  S AUDIX=0
 | 
|---|
| 73 |  F  S AUDIX=$O(^XTMP("MAG30P25","MAPEDITAUD",AUDIX)) Q:'AUDIX  S AUDDTA=$G(^(AUDIX,0)) I AUDDTA]"" D
 | 
|---|
| 74 |  . S ^XTMP("MAG30P25","MAPPING",$P(AUDDTA,U,3),$P(AUDDTA,U,4))=$P(AUDDTA,U,5,999)
 | 
|---|
| 75 |  . Q
 | 
|---|
| 76 |  W "done.",!
 | 
|---|
| 77 |  G CLOSE
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 | DIE(MAGFLD,MAGID,MAGDATA) ;
 | 
|---|
| 80 |  ; File mapping data for field 16 into file #2005.03 (Parent Data File)
 | 
|---|
| 81 |  ; or mapping data for field 100 into file #2005.81 (MAG Descriptive Categories)
 | 
|---|
| 82 |  ; Called from CLEAR and from END^MAGXCVE 
 | 
|---|
| 83 |  N DR ; --- FileMan field string
 | 
|---|
| 84 |  N DIE ; -- FileMan file number
 | 
|---|
| 85 |  N DA ; --- FileMan internal entry number
 | 
|---|
| 86 |  N I ; ---- scratch index
 | 
|---|
| 87 |  ;
 | 
|---|
| 88 |  F I=3:1:8 S $P(MAGDATA,U,I)=$S($P(MAGDATA,U,I)="":"@",1:$P($P(MAGDATA,U,I),"-"))
 | 
|---|
| 89 |  S DR="40////"_$P(MAGDATA,U,3)_";41////"_$P(MAGDATA,U,4)
 | 
|---|
| 90 |  S DR=DR_";42////"_$P(MAGDATA,U,5)_";43////"_$P(MAGDATA,U,6)
 | 
|---|
| 91 |  S DR=DR_";44////"_$P(MAGDATA,U,7)_";45////"_$P(MAGDATA,U,8)
 | 
|---|
| 92 |  S DIE=$S(MAGFLD=16:2005.03,MAGFLD=100:2005.81),DA=MAGID U IO D ^DIE
 | 
|---|
| 93 |  Q
 | 
|---|
| 94 |  ;
 | 
|---|
| 95 |  ; Reached when an error (including end-of-file) occurs.
 | 
|---|
| 96 | ERR ;
 | 
|---|
| 97 |  U IO(0) X "W !,$ZE,!"
 | 
|---|
| 98 | CLOSE ; normal file close logic
 | 
|---|
| 99 |  D ^%ZISC
 | 
|---|
| 100 | DONE S COUNT=COUNT+1
 | 
|---|
| 101 |  I COUNT=1 W !,"Done importing conversion values."
 | 
|---|
| 102 |  Q
 | 
|---|