| 1 | TMGBROWS ;TMG/kst/Record browser ;03/25/06
 | 
|---|
| 2 |          ;;1.0;TMG-LIB;**1**;03/10/07
 | 
|---|
| 3 |  
 | 
|---|
| 4 |  ;" TMG BROWSE RECORDS
 | 
|---|
| 5 |  ;"Kevin Toppenberg MD
 | 
|---|
| 6 |  ;"GNU General Public License (GPL) applies
 | 
|---|
| 7 |  ;"3-10-2007
 | 
|---|
| 8 |  
 | 
|---|
| 9 |  ;"=======================================================================
 | 
|---|
| 10 |  ;" API -- Public Functions.
 | 
|---|
| 11 |  ;"=======================================================================
 | 
|---|
| 12 |  ;"ASKBROWSE -- browse records, and follow pointers
 | 
|---|
| 13 |  
 | 
|---|
| 14 |  ;"=======================================================================
 | 
|---|
| 15 |  ;" Private Functions.
 | 
|---|
| 16 |  ;"=======================================================================
 | 
|---|
| 17 |  ;"Browse(FileNum,IENS,ShowEmpty) --Browse a record, allowing display of
 | 
|---|
| 18 |  ;"      the current record, or follow pointers to other records.
 | 
|---|
| 19 |  ;"DispRec(FileNum,IEN) -- To display record
 | 
|---|
| 20 |  
 | 
|---|
| 21 |  ;"=======================================================================
 | 
|---|
| 22 |  
 | 
|---|
| 23 |  
 | 
|---|
| 24 | ASKBROWSE
 | 
|---|
| 25 |         ;"Purpose: To browse records, and follow pointers.
 | 
|---|
| 26 |  
 | 
|---|
| 27 |         write !!,"  -= RECORD BROWSE =-",!
 | 
|---|
| 28 |         new FIENS,IENS
 | 
|---|
| 29 | AL1
 | 
|---|
| 30 |         set FIENS=$$AskFIENS^TMGDBAPI()
 | 
|---|
| 31 |         if (FIENS["?")!(FIENS="^") goto ASKDone
 | 
|---|
| 32 |  
 | 
|---|
| 33 |         set FileNum=$piece(FIENS,"^",1)
 | 
|---|
| 34 |         set IENS=$piece(FIENS,"^",2)
 | 
|---|
| 35 |  
 | 
|---|
| 36 | AL2
 | 
|---|
| 37 |         set IENS=$$AskIENS^TMGDBAPI(FileNum,IENS)
 | 
|---|
| 38 |         if (IENS["?")!(IENS="") goto AL1
 | 
|---|
| 39 |  
 | 
|---|
| 40 |         new % set %=2
 | 
|---|
| 41 |         write "Display empty fields"
 | 
|---|
| 42 |         do YN^DICN
 | 
|---|
| 43 |         if %=-1 write ! goto ASKDone
 | 
|---|
| 44 |  
 | 
|---|
| 45 |         ;"Do the output
 | 
|---|
| 46 |         write ! do Browse(FileNum,IENS,(%=1))
 | 
|---|
| 47 |         set IENS=$piece(IENS,",",2,99)  ;"force Pick of new record to dump
 | 
|---|
| 48 |         if +IENS>0 goto AL2
 | 
|---|
| 49 |         goto AL1
 | 
|---|
| 50 |  
 | 
|---|
| 51 |  
 | 
|---|
| 52 | ASKDone
 | 
|---|
| 53 |         quit
 | 
|---|
| 54 |  
 | 
|---|
| 55 |  
 | 
|---|
| 56 | Browse(FileNum,IENS,ShowEmpty)
 | 
|---|
| 57 |         ;"Purpose: Browse a record, allowing display of the current record, or
 | 
|---|
| 58 |         ;"         follow pointers to other records.
 | 
|---|
| 59 |         ;"Input: FileNum -- the number of the file to browse
 | 
|---|
| 60 |         ;"       IENS -- the record number to display (or IENS: #,#,#,)
 | 
|---|
| 61 |         ;"       ShowEmpty -- OPTIONAL;  if 1 then empty fields will be displayed
 | 
|---|
| 62 |  
 | 
|---|
| 63 |         new FldInfo,field
 | 
|---|
| 64 |         do GetPtrsOUT^TMGDBAPI(FileNum,.FldInfo)
 | 
|---|
| 65 |  
 | 
|---|
| 66 |         if $extract(IENS,$length(IENS))'="," set IENS=IENS_","
 | 
|---|
| 67 |  
 | 
|---|
| 68 |         set field=""
 | 
|---|
| 69 |         for  set field=$order(FldInfo(field)) quit:(field="")  do
 | 
|---|
| 70 |         . new name set name=$$GetFldName^TMGDBAPI(FileNum,field)
 | 
|---|
| 71 |         . set FldInfo(field,"NAME")=name
 | 
|---|
| 72 |  
 | 
|---|
| 73 |         new Menu
 | 
|---|
| 74 |         new count set count=1
 | 
|---|
| 75 |                 write "File: ",$$GetFName^TMGDBAPI(FileNum),!
 | 
|---|
| 76 |  
 | 
|---|
| 77 |         set Menu(0)="File: "_$$GetFName^TMGDBAPI(FileNum)_" ("_FileNum_"), Record: "_IENS
 | 
|---|
| 78 |         set field=""
 | 
|---|
| 79 |         for  set field=$order(FldInfo(field)) quit:(field="")  do
 | 
|---|
| 80 |         . new ptr set ptr=$$GET1^DIQ(FileNum,IENS,field,"I")
 | 
|---|
| 81 |         . new otherName set otherName=$$GET1^DIQ(FileNum,IENS,field)
 | 
|---|
| 82 |         . if ptr="" quit
 | 
|---|
| 83 |         . new name set name=$$GetFldName^TMGDBAPI(FileNum,field)
 | 
|---|
| 84 |         . set Menu(count)="BROWSE: ("_field_") "_name_"--> "_otherName_$char(9)_FldInfo(field)_"|"_ptr
 | 
|---|
| 85 |         . set count=count+1
 | 
|---|
| 86 |  
 | 
|---|
| 87 |         set Menu(count)="DUMP entire record"_$char(9)_"DUMP"
 | 
|---|
| 88 |  
 | 
|---|
| 89 | M0      write #
 | 
|---|
| 90 |         set UsrSlct=$$Menu^TMGUSRIF(.Menu,"^")
 | 
|---|
| 91 |  
 | 
|---|
| 92 |         if UsrSlct="DUMP" do DispRec(FileNum,IENS) goto M0
 | 
|---|
| 93 |         if UsrSlct["|" do  goto M0
 | 
|---|
| 94 |         . new newFile set newFile=$piece(UsrSlct,"|",1)
 | 
|---|
| 95 |         . new IEN set IEN=$piece(UsrSlct,"|",2)_","
 | 
|---|
| 96 |         . do Browse(newFile,IEN,.ShowEmpty)
 | 
|---|
| 97 |         if UsrSlct="^" goto MenuDone
 | 
|---|
| 98 |         goto M0
 | 
|---|
| 99 |  
 | 
|---|
| 100 | MenuDone
 | 
|---|
| 101 |         quit
 | 
|---|
| 102 |  
 | 
|---|
| 103 |  
 | 
|---|
| 104 | DispRec(FileNum,IEN)
 | 
|---|
| 105 |         ;"Purpose: To display record
 | 
|---|
| 106 |         ;"Input:  FileNum -- The File number to display
 | 
|---|
| 107 |         ;"        IEN -- the IEN (record number) to display in file.
 | 
|---|
| 108 |         ;"Results: none
 | 
|---|
| 109 |  
 | 
|---|
| 110 |         write "File: ",$$GetFName^TMGDBAPI(FileNum),!
 | 
|---|
| 111 |         do DumpRec2^TMGDEBUG(FileNum,IEN_",",0)
 | 
|---|
| 112 |         do PressToCont^TMGUSRIF
 | 
|---|
| 113 |  
 | 
|---|
| 114 |         quit
 | 
|---|
| 115 |  
 | 
|---|