| 1 | DMSQP5 ;SFISC/EZ-DD LISTING USING SQLI ;10/30/97  17:46
 | 
|---|
| 2 |  ;;22.0;VA FileMan;;Mar 30, 1999
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 | EN ; for a single file or number range, display DD information
 | 
|---|
| 5 |  I '$O(^DMSQ("S",0)) W !?5,"Sorry, SQLI files are empty.",! Q
 | 
|---|
| 6 |  I $$WAIT^DMSQT1 D  Q
 | 
|---|
| 7 |  . W !?5,"Try later.  SQLI is being re-built right now."
 | 
|---|
| 8 |  D DT^DICRW S DMQ="" D ASK G EXIT:DMQ D ASK1 G EXIT:DMQ
 | 
|---|
| 9 |  S %ZIS="Q" D ^%ZIS G EXIT:POP
 | 
|---|
| 10 |  I $D(IO("Q")) D  G EXIT
 | 
|---|
| 11 |  . S ZTRTN="DQ^DMSQP5",ZTSAVE("DMFN")="",ZTSAVE("DMFN1")=""
 | 
|---|
| 12 |  . D ^%ZTLOAD
 | 
|---|
| 13 |  D DQ
 | 
|---|
| 14 | EXIT D ^%ZISC
 | 
|---|
| 15 |  K DMFN,DMFN1,DM1,DM2,DMQ
 | 
|---|
| 16 |  Q
 | 
|---|
| 17 | ASK ; select file numbers
 | 
|---|
| 18 |  W !,"WARNING:  REPORT JUST WRITES TO THE SCREEN WITHOUT PAGE BREAKS"
 | 
|---|
| 19 |  W !,"          (INTENDED FOR SCREEN CAPTURES) SO PICK ONE TABLE"
 | 
|---|
| 20 |  W !,"          OR A SMALL RANGE WHEN TESTING",!
 | 
|---|
| 21 |  S DM1=$O(^DMSQ("T","C",0)),DM2=$O(^DMSQ("T","C",99999999999),-1)
 | 
|---|
| 22 |  S DIR(0)="NO^"_DM1_":"_DM2_":999999999",DIR("A")="Starting File Number"
 | 
|---|
| 23 |  S DIR("?")="Enter the number of the file, e.g. 200 or 1.5215"
 | 
|---|
| 24 |  S DIR("B")=1.521 D ^DIR S:$D(DIRUT) DMQ=1 K DIR Q:DMQ  S DMFN=Y
 | 
|---|
| 25 |  I '$D(^DMSQ("T","C",DMFN)) W !,"SQLI table not found." G ASK
 | 
|---|
| 26 |  Q
 | 
|---|
| 27 | ASK1 S DIR("B")=DMFN ; default to one file (not a range)
 | 
|---|
| 28 |  S DIR(0)="NO^"_DM1_":"_DM2_":999999999",DIR("A")="  Ending File Number"
 | 
|---|
| 29 |  S DIR("?")="Optionally enter a larger number for a range, e.g. 1.5217"
 | 
|---|
| 30 |  D ^DIR S:$D(DTOUT)!$D(DUOUT) DMQ=1 K DIR Q:DMQ  S DMFN1=Y
 | 
|---|
| 31 |  I '$D(^DMSQ("T","C",DMFN1)) D  G ASK1
 | 
|---|
| 32 |  . W !!?5,"There isn't a table for the file number you've entered."
 | 
|---|
| 33 |  . W !?5,"(The highest possible number is "_DM2_".)",!
 | 
|---|
| 34 |  I DMFN1'=DMFN,DMFN1'>DMFN D  G ASK1
 | 
|---|
| 35 |  . W !!?5,"Enter a LARGER number to get a range."
 | 
|---|
| 36 |  . W !?5,"The highest possible number here is "_DM2_".",!
 | 
|---|
| 37 |  Q
 | 
|---|
| 38 | DQ ; print DD information in file number order
 | 
|---|
| 39 |  ; find file number links (from subfiles or pointers)
 | 
|---|
| 40 |  U IO
 | 
|---|
| 41 |  N DMQ,FI,TI,EI,CI,PEI,PI,FEI,FKI
 | 
|---|
| 42 |  N GBL,PARLNK,LINK,PTRLNK,FLD,FLDGBL,ID,PIECE,EXTRACT,FN,DMSQTMP,TN,EN
 | 
|---|
| 43 |  S DMQ="",FI=$O(^DMSQ("T","C",DMFN),-1)
 | 
|---|
| 44 |  F  S FI=$O(^DMSQ("T","C",FI)) Q:(DMQ)!(FI>DMFN1)!(FI'>0)  D
 | 
|---|
| 45 |  . S TI=0 F  S TI=$O(^DMSQ("T","C",FI,TI)) Q:(DMQ)!(TI'>0)  D
 | 
|---|
| 46 |  .. S TN=$P(^DMSQ("T",TI,0),U,1)
 | 
|---|
| 47 |  .. S (EI,GBL,PARLNK)=""
 | 
|---|
| 48 |  .. F  S EI=$O(^DMSQ("E","F",TI,"C",EI)) Q:(DMQ)!(EI'>0)  D
 | 
|---|
| 49 |  ... D PAGE I $D(DIRUT) S DMQ=1 Q
 | 
|---|
| 50 |  ... D RPT
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 | PAGE ; do page breaks if using a terminal (C-) device
 | 
|---|
| 53 |  I ($Y+6>IOSL)&(IOST["C-") S DIR(0)="E" D ^DIR K DIR W @IOF
 | 
|---|
| 54 |  Q
 | 
|---|
| 55 | RPT ;
 | 
|---|
| 56 |  I $P(^DMSQ("E",EI,0),U,2)=14 Q   ;exclude wp fields here
 | 
|---|
| 57 |  ;include the subfiles created from wp fields later on
 | 
|---|
| 58 |  S EN=$P(^DMSQ("E",EI,0),U,1)
 | 
|---|
| 59 |  S (LINK,PTRLNK,FLD,FLDGBL,ID)=""
 | 
|---|
| 60 |  S CI=$O(^DMSQ("C","B",EI,""))
 | 
|---|
| 61 |  S PEI=$O(^DMSQ("E","F",TI,"P",""))
 | 
|---|
| 62 |  S PI="" F  S PI=$O(^DMSQ("P","B",PEI,PI)) Q:PI'>0  D
 | 
|---|
| 63 |  . I CI=$P(^DMSQ("P",PI,0),U,2) D
 | 
|---|
| 64 |  .. S GBL=GBL_^DMSQ("C",CI,1)_"{K}",ID=1
 | 
|---|
| 65 |  S FEI=0 F  S FEI=$O(^DMSQ("E","F",TI,"F",FEI)) Q:FEI'>0  D
 | 
|---|
| 66 |  . S FKI=$O(^DMSQ("F","B",FEI,""))
 | 
|---|
| 67 |  . I FKI,CI=$P(^DMSQ("F",FKI,0),U,3) D
 | 
|---|
| 68 |  .. S LINK=$P(^DMSQ("T",$P(^DMSQ("DM",$P(^DMSQ("E",FEI,0),U,2),0),U,4),0),U,7)
 | 
|---|
| 69 |  .. S:ID PARLNK=LINK S:'ID PTRLNK=LINK
 | 
|---|
| 70 |  Q:ID  D   ;just process non-ID columns (regular fields)
 | 
|---|
| 71 |  . S FLD=$P(^DMSQ("C",CI,0),U,6) I $D(^DMSQ("C",CI,1)) D
 | 
|---|
| 72 |  .. S FLDGBL=GBL_^DMSQ("C",CI,1)
 | 
|---|
| 73 |  .. S PIECE=$P(^DMSQ("C",CI,0),U,11)
 | 
|---|
| 74 |  .. S EXTRACT=$P(^DMSQ("C",CI,0),U,12)_","_$P(^(0),U,13)
 | 
|---|
| 75 |  .. S:PIECE FLDGBL="$P("_FLDGBL_",U,"_PIECE_")"
 | 
|---|
| 76 |  .. S:EXTRACT FLDGBL="$E("_FLDGBL_","_EXTRACT_")"
 | 
|---|
| 77 |  D FIELD^DID(FI,FLD,"","LABEL;TYPE","DMSQTMP")
 | 
|---|
| 78 |  S FN=$S($D(^DIC(FI)):$P(^(FI,0),U),1:$O(^DD(FI,0,"NM","")))
 | 
|---|
| 79 |  W !,FI_" "_FN,!?($L(FI)-3),"TBL:"_TN
 | 
|---|
| 80 |  W !?10,FLD_" "_$G(DMSQTMP("LABEL")),!?($L(FLD)+7),"COL:"_EN
 | 
|---|
| 81 |  W !?20,$G(DMSQTMP("TYPE"))
 | 
|---|
| 82 |  W:PTRLNK ?32,"TO: "_PTRLNK
 | 
|---|
| 83 |  W:PARLNK ?52,"SUBFILE OF: "_PARLNK
 | 
|---|
| 84 |  W !?20,FLDGBL
 | 
|---|
| 85 |  Q
 | 
|---|