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

DDS02.m

Go to the documentation of this file.
  1. DDS02 ;SFISC/MKO - OVERFLOW FROM ^DDS01 ;24JUL2015
  1. ;;22.2;VA FileMan;**2**;Jan 05, 2016;Build 139
  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. REFRESH(DDSPG) ;Refreshes the setup for page
  1. N B,D,I,DIE,DDSDA,DDP
  1. F B=0:0 S B=$O(@DDSREFT@(DDSPG,B)) Q:'B D
  1. .I '$D(DDSDA) S DDSDA=^(B),DIE=^(B,DDSDA,"GL"),DDP=$P(@DDSREFS@(DDSPG,B),U,3) ;GET THE ORIGINAL PAGE DATA
  1. .S D="" F S D=$O(@DDSREFT@(DDSPG,B,D)) Q:D="" I +$G(^(D))=1 S $P(^(D),U)=0 ;REMEMBER TO RELOAD BLOCKS ON THIS PAGE!
  1. .S I="" F S I=$O(@DDSREFT@("F0",I)) Q:I="" F S D=$O(@DDSREFT@("F0",I,D)) Q:D="" I $P(D,",",2)=B,$G(^(D,"F"))=3 K @DDSREFT@("F0",I,D) ;KILL OLD FORM-ONLY VALUE
  1. I $D(D) D EN^DDS1(DDSPG)
  1. Q
  1. ;
  1. ;
  1. ;
  1. SV ;Save
  1. S DDACT="N"
  1. I $G(DDSDN)=1,DDO D ERR3^DDS3 Q
  1. I DDSSC'>1,'$P(DDSSC(DDSSC),U,4) D S^DDS3 Q ;INCLUDED '$G(DDSSEL)
  1. D MSG^DDSMSG($$EZBLD^DIALOG(3093),1) ;**CANNOT SAVE
  1. Q
  1. ;
  1. EXT ;Process external form
  1. I '$P($G(DDSU("DD")),U,2),$P($G(DDSU("DD")),U,2)["P" D PT
  1. I $P($G(DDSO(0)),U,3)=2,$E($P($G(DDSO(20)),U))="P" D PTFO
  1. ;
  1. S:DDSOLD=Y DIR0N=1
  1. S DDSX=X,DDSY=Y
  1. I Y]"",$P($G(DDSU("DD")),U,2)["O"!($P($G(DDSU("DD")),U,2)["t") X $$OUTPUT^DIETLIBF(DDP,DDSFLD) S Y(0)=Y ;OUTPUT TRANSFORM
  1. ;
  1. S DDSEXT=$G(Y(0,0),$G(Y(0),Y)),X=DDSY
  1. ;
  1. I $D(DDSO(14)) K DDSERROR X DDSO(14) I $D(DDSERROR)#2 D Q
  1. . K DDSERROR,DDSY S DIR0("L")=DDSEXT,DDSCHKQ=1
  1. ;
  1. I DDSY="",DDSFLD'=.01 D Q:'$D(DDSY)
  1. . N DDSREQ,DDSKEY
  1. . S DDSREQ=$P($G(DDSU("A")),U)
  1. . S:DDSREQ="" DDSREQ=$P($G(DDSO(4)),U)
  1. . S:DDSREQ="" DDSREQ=$P($G(DDSU("DD")),U,2)["R"
  1. . S DDSKEY=$D(^DD("KEY","F",DDP,DDSFLD))>0
  1. . I 'DDSREQ,'DDSKEY Q
  1. . K DDSY
  1. . S DDSCHKQ=1,DIR0("L")=DDSEXT
  1. . D MSG^DDSMSG($$EZBLD^DIALOG($S(DDSKEY:3092.2,1:3092.1)),1) ;'REQUIRED KEY FIELD'
  1. ;
  1. S DY=$P(DIR0,U),DX=$P(DIR0,U,2)
  1. REPNT I DDSEXT'=DDSX!$G(DDSREPNT) D K DDSREPNT ;WRITE OUT NEW VALUE, IF IT DIFFERS FROM WHAT WAS INPUT
  1. . X IOXY
  1. . S DDSX=$E(DDSEXT,1,$P(DIR0,U,3))
  1. . I '$P(DIR0,U,6) S DDSX=DDSX_$J("",$P(DIR0,U,3)-$L(DDSEXT))
  1. . E S DDSX=$J("",$P(DIR0,U,3)-$L(DDSEXT))_DDSX
  1. . W $P(DDGLVID,DDGLDEL)_DDSX_$P(DDGLVID,DDGLDEL,10)
  1. ;
  1. CHECKEY I $G(DDSU("K")),DDSY]""!(DDSFLD'=.01) D Q:'$D(DDSY) ;CHECK KEY
  1. . N DDSFXR,DDSUI,DDSUNIQ,DDSVSV,DIIENS
  1. . D LOADXREF^DIKC1(DDP,"","",DDSU("K"),$NA(@DDSREFT@("F"))_"_","DDSFXR")
  1. . S:$D(@DDSREFT@("F"_DDP,DDSDA,DDSFLD,"D"))#2 DDSVSV=^("D") S ^("D")=DDSY
  1. . S DDSUNIQ=1,DDSUI=0
  1. . F S DDSUI=$O(DDSFXR(DDP,DDSUI)) Q:'DDSUI D Q:'DDSUNIQ
  1. .. S DIIENS=DDSDA
  1. .. D SETXARR^DIKC(DDP,DDSUI,"DDSFXR","","D")
  1. .. S DDSUNIQ=$$UNIQUE^DIKK2(DDP,DDSUI,.X,.DA,"DDSFXR")
  1. . I 'DDSUNIQ D
  1. .. K DDSY
  1. .. S DDSCHKQ=1,DIR0("L")=DDSEXT
  1. .. D MSG^DDSMSG($$EZBLD^DIALOG(3094),1) ;"Another Entry already exists with this KEY value."
  1. .. K @DDSREFT@("F"_DDP,DDSDA,DDSFLD,"D") S:$D(DDSVSV)#2 ^("D")=DDSVSV
  1. ;
  1. D:$G(DDSDA)!'$D(DDSREP)
  1. . S:$D(Y(0)) @DDSREFT@("F"_DDP,DDSDA,DDSFLD,"X")=DDSEXT
  1. . S @DDSREFT@("F"_DDP,DDSDA,DDSFLD,"D")=DDSY I DDSY="",$D(DDSU("X")) S ^("X")="" ;CHANGE THE DATA!
  1. K DDSY
  1. Q
  1. ;
  1. DEC(FILE,FIELD,DEC) ;NOT USED (??)
  1. S DEC="S X=$G(@DDSREFT@(""F"_FILE_""",DIIENS,"_FIELD_",""D""),"_$E(DEC,5,999)_")"
  1. Q
  1. ;
  1. PT ;Modify Y for pointer type fields
  1. I $P(Y,U,3)=1 D
  1. . S ^("ADD")=$G(@DDSREFT@("ADD"))+1,^("ADD",^("ADD"))=+Y_","_U_$P(DDSU("DD"),U,3)
  1. S Y=$P(Y,U)
  1. Q
  1. ;
  1. PTFO ;Modify Y for pointer type form only fields
  1. I $P(Y,U,3)=1 D
  1. . N R,I S R=""
  1. . F I=1:1 Q:$D(DA(I))[0 S R=R_DA(I)_","
  1. . S ^("ADD")=$G(@DDSREFT@("ADD"))+1,@DDSREFT@("ADD",@DDSREFT@("ADD"))=+Y_","_R_$S($P(DDSO(20),U,3):^DIC(+$P(DDSO(20),U,3),0,"GL"),1:U_$P($P(DDSO(20),U,3),":"))
  1. S Y=$S(Y=-1:"",1:$P(Y,U))
  1. Q