Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DIL11

DIL11.m

Go to the documentation of this file.
  1. DIL11 ;SFISC/GFT - TURN PRINT FLDS INTO CODE ;10NOV2016
  1. ;;22.2;VA FileMan;**4**;Jan 05, 2016;Build 5
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
  1. ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
  1. ;;Licensed under the terms of the Apache License, Version 2.0.
  1. ;;GFT;**152,1037,1056**
  1. ;
  1. DOWN ;INTO A MULTIPLE
  1. I W>0,'$D(^DD(DP,+W,0)) Q ;IN CASE FIELD IS NOW GONE FOR SOME REASON!
  1. S DN=-6,DY(DM)=DY,DP(DM)=DP,DI(DM)=DI I W>0 D M G D^DIL
  1. F ;
  1. S DP=-W,X=$P(W,U,2),DD=DD+1,M(DP)=1,DIL(DM)=DIL,DIL(DM,0)=DIL0,Y=0,DIL0=DIL0+100,%=X["(" I % S (X,DI)=U_X,DIL=DIL0
  1. E S DI=DI(DM)_","""_X_""",",DIL=DIL+101
  1. QT S Y=$F(X,"""",Y) I Y S X=$E(X,1,Y-1)_$E(X,Y-1,999),Y=Y+1 G QT
  1. S Y=" S I("_DIL_")="""_X_""",J("_DIL_")="_DP
  1. S X=" "_$P($P(W,U,4,99),";")
  1. S DY="D"_(DIL-DIL0),DI=DI_DY,DIL=DIL-1 I $P(W,U,3)="" S W=+W,Y=Y_X_" S D0=D(0) I D0>0" G D^DIL
  1. S %="I("_(DIL0-100)_",0)=D0" I X'[% S X=","_%_X
  1. I DHT=-1 D DREL^DIPZ1 G END ;WE'RE COMPILING A PRINT TEMPLATE
  1. F %=900:1 I '$D(^UTILITY($J,99,%)) S ^(%)="I 1 X:$D(DSC("_DP_")) DSC("_DP_") I D T:$X>"_DG_" Q:'DN "_Y,Y=" S (DIXX,DIXX("_(DM+1)_"))="_%_X,W=+W D D^DIL K R(DX) Q
  1. END S (F(DM-1),DX)=%,R(%)=DP(DM-1),R(%,1)=M(DP(DM-1))
  1. Q
  1. ;
  1. ;
  1. M N %,DILEVEL,DIB1,DIBO,D,DY,X ;BUILD A "Y" STRING
  1. S DILEVEL=DIL-DIL0+1
  1. S X=^DD(DP,+W,0),DU=$P($P(X,U,4),";") S:+DU'=DU DU=""""_DU_""""
  1. S DI=DI_","_DU_",",DY="D"_DILEVEL
  1. B I W'[";B" S %=":0 Q:$O("_DI_DY_"))'>0 ",DIB1=""
  1. E S DIB1="DIB"_DIL,DIBO="$O("_DI_"""B"","_DIB1,DIB1=" N "_DIB1_" S "_DIB1_"="""" F S "_DIB1_"="_DIBO_")) Q:"_DIB1_"="""" Q:'DN ",%=":0 Q:"_DIBO_","_DY_"))'>0 "
  1. S DI=DI_DY
  1. S DP=+$P(X,U,2),M(DP)=1,D=$P("""""",U,+DU'=DU),D=" S I("_(DIL+1)_")="_D_DU_D_",J("_(DIL+1)_")="_DP_DIB1,Y=" S "_DY_"=$O(^("_DY_"))"
  1. ;XML I $G(DDXPFFNO) S D=D_$$WOPEN^DIXML($P(X,U))
  1. ;
  1. W S W=$P(W,",") I $P(^DD(DP,.01,0),U,2)["W" D:$P(^(0),U,2)["x"!($P(^(0),U,2)["X") G P ;**DI*22*152**
  1. .S D=D_",D"_(DIL+1)_"=$G(DIWF) N DIWF S DIWF=D"_(DIL+1)_"_""X"""
  1. I DHT+1 F X=1:1 G P:X>DPP,DPP:+DPP(X)=DP!$D(DPP(X,DP))
  1. DPP S Y=Y_" Q:"_DY_"'>0 "
  1. I DIB1="" S Y=" X $G(DSC("_DP_")) "_Y ;DSC will switch the naked reference, so we can get thru the subentries faster!
  1. I DIB1]"" S Y=Y_" I 1 X $G(DSC("_DP_")) I " ;DSC will do an IF
  1. I DHT+1,"@"[$P(DPP(X),U,4),$P(DPP(X),U,2)=0 S DPP(X,U)="" G R:$D(DPP(X,"F"))
  1. S Y=Y_" "
  1. P S Y=D_" F "_DY_"=0"_%_Y_$S($D(DIARP(DP)):" X DIARP("_DP_") I $T",1:"")
  1. G S
  1. ;
  1. R S V=$P(DPP(X,"T"),U),Y=D_" F "_DY_"="_$P(DPP(X,"F"),U)_%_Y ;RANGE "F"ROM AND "T"O SORTING BY SUB-IEN
  1. I V S:Y?.E1"'>0 " Y=$E(Y,1,$L(Y)-1) S Y=Y_"!("_DY_">"_V_")" ;_$S(V:"!("_DY_">"_V_") ",1:" ")
  1. S Y=Y_" "
  1. S S:($G(DDXP)'=4) %=" D:$X>"_DG,Y=Y_%_$S($D(DIWR):" NX^DIWW",1:" T Q:'DN ") ;ADD A LINE FEED UNLESS WE ARE 'EXPORTING'
  1. I DHT>0 S ^UTILITY($J,DV)="I "_DY_"'>0 S "_DY_"=0 "_$P(Y," ",2,99),DV=DV+1 ;HEADER TEMPLATE
  1. Q