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

LEXDSV.m

Go to the documentation of this file.
  1. LEXDSV ;ISL/KER - Defaults - Save ;04/21/2014
  1. ;;2.0;LEXICON UTILITY;**80**;Sep 23, 1996;Build 10
  1. ;
  1. ; Global Variables
  1. ; None
  1. ;
  1. ; External References
  1. ; FILE^DICN ICR 10009
  1. ; ^DIE ICR 10018
  1. ; ^DIK ICR 10013
  1. ;
  1. ; Needs
  1. ;
  1. ; Application File DA, Subfile DA(1) LEXAP
  1. ; User DUZ Sub-file .01 DINUM LEXDUZ
  1. ; Default value LEXDVAL
  1. ; Defualt name LEXDNAM
  1. ; Default field Sub-file field LEXFLD
  1. ;
  1. ; Sets ^LEXT(757.2,LEXAP,200,LEXDUZ,LEXFLD)=LEXDVAL
  1. ; and ^LEXT(757.2,LEXAP,200,LEXDUZ,(LEXFLD+.5))=LEXDNAM
  1. ;
  1. Q
  1. SET(LEXDUZ,LEXAP,LEXDVAL,LEXDNAM,LEXFLD) ;
  1. ;
  1. Q:'$L($G(LEXDVAL)) S:LEXDVAL["@" LEXDVAL="@",LEXDNAM="@" S DIC("P")="757.201PA"
  1. N LEXWARN S LEXWARN=0,(DIC,DIE)="^LEXT(757.2,"_LEXAP_",200,"
  1. S DA(1)=LEXAP,DA=LEXDUZ
  1. S DLAYGO=757.2,(DINUM,X)=LEXDUZ,DIC(0)="L"
  1. S DIC("DR")=LEXFLD_"////^S X=LEXDVAL" K DD,DO D FILE^DICN
  1. EDIT ; Lock record and edit user default
  1. L +^LEXT(757.2,+LEXAP,200):1
  1. I '$T D G EDIT
  1. . W:'$D(ZTQUEUED)&('LEXWARN) !,"Another user is editing this entry, please wait"
  1. . S LEXWARN=1 H 2
  1. S DA(1)=LEXAP,DA=LEXDUZ,DR=LEXFLD_"////^S X=LEXDVAL"
  1. D ^DIE I $L($G(LEXDNAM)) S DR=(LEXFLD+.5)_"////^S X=LEXDNAM" D ^DIE
  1. K DA,DR,DIE,DIC
  1. L -^LEXT(757.2,+LEXAP,200)
  1. ;
  1. ; Delete name if default is null
  1. ;
  1. N LEXX,LEXDEL S LEXX=0,LEXDEL=1
  1. F S LEXX=$O(^LEXT(757.2,LEXAP,200,LEXDUZ,LEXX)) Q:+LEXX=0 D
  1. . I '$L($G(^LEXT(757.2,LEXAP,200,LEXDUZ,LEXX))) D
  1. . . I $L($G(^LEXT(757.2,LEXAP,200,LEXDUZ,(LEXX+.5)))) D
  1. . . . S LEXDVAL="@",DIC("P")="757.201PA"
  1. . . . S (DIC,DIE)="^LEXT(757.2,"_LEXAP_",200,",DA(1)=LEXAP,DA=LEXDUZ
  1. . . . S DLAYGO=757.2,(DINUM,X)=LEXDUZ,DIC(0)="L"
  1. . . . L +^LEXT(757.2,+LEXAP,200):1 I '$T H 2 S LEXX=LEXX-.05 Q
  1. . . . S DR=(LEXX+.5)_"////^S X=LEXDVAL"
  1. . . . D ^DIE S LEXX=LEXX+.5 K DA,DR,DIE,DIC
  1. . . . L -^LEXT(757.2,+LEXAP,200)
  1. . . I '$L($G(^LEXT(757.2,LEXAP,200,LEXDUZ,(LEXX+.5)))) D
  1. . . . K ^LEXT(757.2,LEXAP,200,LEXDUZ,LEXX),^LEXT(757.2,LEXAP,200,LEXDUZ,(LEXX+.5))
  1. . I $L($G(^LEXT(757.2,LEXAP,200,LEXDUZ,LEXX))) S LEXDEL=0
  1. ;
  1. ; Delete record if all defaults are null
  1. ;
  1. I LEXDEL D
  1. . S (DIC,DIE,DIK)="^LEXT(757.2,"_LEXAP_",200,"
  1. . S DA(1)=LEXAP,DA=LEXDUZ D ^DIK
  1. Q