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

XQSMDFM.m

Go to the documentation of this file.
  1. XQSMDFM ;ISC-SF(SEA)/JLI,MJM - PERMIT USER TO BUILD LIMITED FM OPTIONS ;01/25/2008
  1. ;;8.0;KERNEL;**510**;Jul 10, 1995;Build 6
  1. ; Per VHA Directive 2004-038, this routine should not be modified.
  1. ; Option: XQSMD LIMITED FM OPTIONS
  1. RULES ;
  1. N XQNMSP,XQTYPE
  1. D NAMESP^XQSMD4(.XQNMSP) Q:'$D(XQNMSP) ; User must have namespace to use.
  1. D ASKTYPE(.XQTYPE) Q:'$D(XQTYPE)
  1. D @XQTYPE
  1. Q
  1. ASKTYPE(XQTYPE) ;
  1. W !,"The option types that may be built are P(rint), E(dit), and I(nquire),"
  1. W !,"and you must have template(s) ready to be included in the option."
  1. W !,"You may also enter D(elete) to delete an option."
  1. N DIR,X,Y,DIRUT
  1. S DIR("A")="Select Option Type"
  1. S DIR(0)="S^E:Edit"
  1. S DIR(0)=DIR(0)_";P:Print"
  1. S DIR(0)=DIR(0)_";I:Inquire"
  1. S DIR(0)=DIR(0)_";D:Delete"
  1. D ^DIR Q:$D(DIRUT)
  1. S XQTYPE=Y
  1. Q
  1. D ; Delete
  1. N DIC,X,Y,XQOPT
  1. S DIC("A")="Select Option to Delete: "
  1. S DIC(0)="AEQMZ"
  1. S DIC="^VA(200,DUZ,19.5,"
  1. D ^DIC Q:Y<0
  1. S XQOPT("IEN")=+Y ; Option IEN
  1. S XQOPT("NAME")=Y(0,0) ; Option Name
  1. I $D(^VA(200,"AP",XQOPT("IEN"))) D NODEL^XQSMD4(.XQOPT) Q
  1. N DIR,X,Y,DIRUT
  1. S DIR("A")="Do you really want to delete "_XQOPT("NAME")
  1. S DIR("B")="No"
  1. S DIR(0)="Y"
  1. D ^DIR Q:'Y
  1. D DELETE^XQSMD4(.XQOPT)
  1. Q
  1. E ; Edit
  1. N XQTMPLE,DIR,X,Y,DIRUT,DR
  1. D ASKTMPL("Edit","^DIE(",.XQTMPLE) Q:'$D(XQTMPLE)
  1. S DIR(0)="Y"
  1. S DIR("A")="Should the user be allowed to ADD a new "_XQTMPLE("FNAME")_" file entry"
  1. S DIR("B")="No"
  1. D ^DIR Q:$D(DIRUT)
  1. S XQTMPLE("ADD")=Y
  1. S DR="1;3.5;4///E;30///"_XQTMPLE("FGLOB")_";31///AEMQ"_$S(XQTMPLE("ADD"):"L",1:"")_";50///"_XQTMPLE("FGLOB")_";51///["_XQTMPLE("NAME")_"];"
  1. D CRE8OPT(DR)
  1. Q
  1. I ; Inquire
  1. N XQTMPLP,DR
  1. D ASKTMPL("Print","^DIPT(",.XQTMPLP,1) Q:'$D(XQTMPLP)
  1. S DR="1;3.5;4///I;30///"_XQTMPLP("FGLOB")_";31///AEMQ;80///"_XQTMPLP("FGLOB")_";"
  1. I $D(XQTMPLP("NAME")) S DR=DR_"63///["_XQTMPLP("NAME")_"];"
  1. D CRE8OPT(DR)
  1. Q
  1. P ; Print
  1. N XQTMPLP,XQTMPLS,DR
  1. D ASKTMPL("Sort","^DIBT(",.XQTMPLS) Q:'$D(XQTMPLS)
  1. S XQTMPLP("FNUM")=XQTMPLS("FNUM"),XQTMPLP("FNAME")=XQTMPLS("FNAME"),XQTMPLP("FGLOB")=XQTMPLS("FGLOB")
  1. D ASKTMPL("Print","^DIPT(",.XQTMPLP) Q:'$D(XQTMPLP)
  1. S DR="1;3.5;4///P;60///"_XQTMPLP("FGLOB")_";62///0;63///["_XQTMPLP("NAME")_"];64///["_XQTMPLS("NAME")_"];"
  1. D CRE8OPT(DR)
  1. Q
  1. ASKTMPL(XQADJ,XQFILE,XQTMPL,XQOPTNL) ;
  1. N DIC,X,Y,DTOUT,DUOUT
  1. I '$D(XQTMPL("FNUM")) D ASKFILE(.XQTMPL) Q:'$D(XQTMPL("FNUM"))
  1. S DIC("A")="Select "_XQADJ_" Template"_$S($G(XQOPTNL):" (Optional)",1:"")_": "
  1. S DIC("S")="I $P(^(0),U,4)="_XQTMPL("FNUM")
  1. S DIC(0)="AEQMZ"
  1. S DIC=XQFILE
  1. D ^DIC I Y<0 D Q
  1. . I '$G(XQOPTNL) K XQTMPL Q
  1. . I $D(DUOUT)!$D(DTOUT) K XQTMPL
  1. S XQTMPL("NAME")=Y(0,0) ; Template Name
  1. ;S XQTMPL("FNUM")=$P(Y(0),U,4) ; File Number
  1. ;S XQTMPL("FNAME")=$P(^DIC(XQTMPL("FNUM"),0),U) ; File Name
  1. Q
  1. ASKFILE(XQTMPL) ;
  1. N DIC,X,Y
  1. S DIC=1
  1. S DIC(0)="AEQM"
  1. S DIC("S")="I $$ACCESS^XQSMDFM(+Y)"
  1. D ^DIC Q:Y<0
  1. S XQTMPL("FNUM")=+Y
  1. S XQTMPL("FNAME")=$P(Y,U,2)
  1. S XQTMPL("FGLOB")=$P(^DIC(XQTMPL("FNUM"),0,"GL"),U,2)
  1. Q
  1. CRE8OPT(DR) ;
  1. N DIE,DA,XQOPT,DIC,DLAYGO,X
  1. AGAIN ;
  1. D ASKOPT^XQSMD4(.XQOPT,XQTYPE) Q:'$D(XQOPT)
  1. I 'XQOPT("NEW") I '$$SURE K XQOPT G AGAIN
  1. S DIE=19,DA=XQOPT("IEN") D ^DIE
  1. S DIC="^VA(200,DUZ,19.5,",X=XQOPT("NAME"),DIC(0)="MLX",DA(1)=DUZ,DLAYGO=200 D ^DIC
  1. Q
  1. SURE() ;
  1. N DIR,X,Y,XQT
  1. S XQT=$P(^DIC(19,XQOPT("IEN"),0),U,4)
  1. W !,"This is an existing "_$$TYPE^XQSMD4(XQT)_" option."
  1. I '$D(^VA(200,DUZ,19.5,XQOPT("IEN"),0)) W !,$C(7),"It is not included in your delegated options." Q 0
  1. I XQT'=XQTYPE W !,"It may not be changed to a different type of option." Q 0
  1. S DIR("A")="Are you sure you wish to change it?"
  1. S DIR("B")="No"
  1. D ^DIR
  1. Q Y
  1. ACCESS(XQFNUM) ; See if user has file access
  1. N XQYZ,XQNODE,XQPIECE
  1. I XQTYPE="E" S XQNODE="WR",XQPIECE=6
  1. E S XQNODE="RD",XQPIECE=5
  1. S XQYZ=$G(^DIC(XQFNUM,0,XQNODE)) Q:XQYZ="" 1
  1. I $D(^VA(200,"AFOF")) Q $P($G(^VA(200,DUZ,"FOF",XQFNUM,0)),U,XQPIECE)>0
  1. ;If Part 3 hasn't been run, check old style FM access codes
  1. N XQACC,XQFMA,I
  1. S XQACC=0
  1. S XQFMA=$P(^VA(200,DUZ,0),U,4) Q:XQFMA="" 0
  1. F I=1:1:$L(XQFMA) I XQYZ[$E(XQFMA,I) S XQACC=1 Q
  1. Q XQACC