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

PXRMOCR.m

Go to the documentation of this file.
  1. PXRMOCR ;SLC/PKR - Routines for editing order check rules ;03/17/2016 11:37
  1. ;;2.0;CLINICAL REMINDERS;**22,45**;Feb 04, 2005;Build 566
  1. ;Also contains routines used by the DD for file #801.1.
  1. ;=============================================
  1. CHECK(IEN,DDSBR,DDSERROR) ;Check a rule for errors, called by DATA
  1. ;VALIDATION on form.
  1. N CHKTXT,DEF,DEFOUT,OCTEXT,TERM,TEXT
  1. ;Either a term or definition must be defined.
  1. S TERM=$$GET^DDSVAL(801.1,IEN,20)
  1. S DEF=$$GET^DDSVAL(801.1,IEN,30)
  1. S CHKTXT=1
  1. I TERM="",DEF="" D Q
  1. . S CHKTXT=0
  1. . S TEXT="Either a term or defintion must be defined."
  1. . S DDSERROR=1
  1. . S DDSBR="TERM^PXRM OCR MAIN BLOCK^1"
  1. . I $D(DDS) D HLP^DDSUTL(TEXT)
  1. . E D EN^DDIOL(TEXT)
  1. I (TERM'=""),($$GET^DDSVAL(801.1,IEN,21)="") D Q
  1. . S CHKTXT=0
  1. . S TEXT="The TERM EVALUATION STATUS is missing."
  1. . S DDSERROR=1
  1. . S DDSBR="TERM EVALUATION STATUS^PXRM OCR TERM^20"
  1. . I $D(DDS) D MSG^DDSUTL(TEXT)
  1. . E D EN^DDIOL(TEXT)
  1. I (DEF'=""),($$GET^DDSVAL(801.1,IEN,31)="") D Q
  1. . S CHKTXT=0
  1. . S TEXT="The DEFINITION EVALUATION STATUS is missing."
  1. . S DDSERROR=1
  1. . S DDSBR="DEFINITION EVALUATION STATUS^PXRM OCR DEFINITION^30"
  1. . I $D(DDS) D MSG^DDSUTL(TEXT)
  1. . E D EN^DDIOL(TEXT)
  1. S DEFOUT=$$GET^DDSVAL(801.1,IEN,32)
  1. I (DEF'=""),(DEFOUT="") D Q
  1. . S CHKTXT=0
  1. . S TEXT="The OUTPUT TEXT is missing."
  1. . S DDSERROR=1
  1. . S DDSBR="OUTPUT TEXT^PXRM OCR DEFINITION^30"
  1. . I $D(DDS) D MSG^DDSUTL(TEXT)
  1. . E D EN^DDIOL(TEXT)
  1. I TERM=""&(DEF=""&(DEFOUT="D")) Q
  1. S OCTEXT=$$GET^DDSVAL(801.1,IEN,"ORDER CHECK TEXT")
  1. I CHKTXT=1,$$WPNCHAR^PXRMSMAN(OCTEXT)=0 D Q
  1. . S TEXT="There is no ORDER CHECK TEXT."
  1. . S DDSERROR=1
  1. . S DDSBR="ORDER CHECK TEXT^PXRM OCR MAIN BLOCK^1"
  1. . I $D(DDS) D MSG^DDSUTL(TEXT)
  1. . E D EN^DDIOL(TEXT)
  1. D FOCTXT(IEN,OCTEXT,.DDSBR,.DDSERROR)
  1. Q
  1. ;
  1. ;=============================================
  1. DCAP(IEN) ;This is the executable caption for the definition.
  1. I '$$DEDOK(IEN) Q ""
  1. N DIEN
  1. S DIEN=$$GET^DDSVAL(801.1,IEN,"REMINDER DEFINITION")
  1. I DIEN="" Q "DEFINITION: "
  1. Q "DEFINITION: "_$P(^PXD(811.9,DIEN,0),U,1)
  1. ;
  1. ;=============================================
  1. DDEL(IEN,OLD,NEW) ;Kill logic for AD cross-reference.
  1. I $G(NEW)>0 Q
  1. D DELFIELD(IEN,31)
  1. D DELFIELD(IEN,32)
  1. Q
  1. ;
  1. ;=============================================
  1. DEDOK(IEN) ;The definition in a rule can be edited as long as a term has
  1. ;not been defined.
  1. I $$GET^DDSVAL(801.1,IEN,"REMINDER TERM")="" Q 1
  1. Q 0
  1. ;
  1. ;===================================
  1. DELFIELD(IEN,FIELD) ;Delete a field.
  1. N FDA,IENS,MSG
  1. S IENS=IEN_","
  1. S FDA(801.1,IENS,FIELD)="@"
  1. D FILE^DIE("","FDA","MSG")
  1. Q
  1. ;
  1. ;=============================================
  1. DPOST(IEN) ;Definition post-action.
  1. ;If the definition is defined do not allow navigation to the term.
  1. N VALUE
  1. S VALUE=$S($$TEDOK(IEN):0,1:1)
  1. D UNED^DDSUTL("TERM","PXRM OCR MAIN BLOCK",1,VALUE)
  1. Q
  1. ;
  1. ;=============================================
  1. FOCTXT(IEN,OCTEXT,DDSBR,DDSERROR) ;Format and store the order check text as
  1. ;long as it does not contain a TIU object.
  1. N FDA,IENS,IND,MSG,NIN,NOUT,NPIPE,TEXTIN,TEXTOUT
  1. S NIN=$P(@OCTEXT@(0),U,4)
  1. S NPIPE=0
  1. F IND=1:1:NIN D
  1. . S TEXTIN(IND)=@OCTEXT@(IND,0)
  1. . S NPIPE=NPIPE+$L(TEXTIN(IND),"|")-1
  1. S $P(^PXD(801.1,IEN,5),U,1)=NIN
  1. ;Remove existing formatted text.
  1. K ^PXD(801.1,IEN,6) S $P(^PXD(801.1,IEN,5),U,2)=0
  1. I NPIPE=0 D Q
  1. .;No TIU Objects, format and save the text.
  1. . D FORMAT^PXRMTEXT(1,80,NIN,.TEXTIN,.NOUT,.TEXTOUT)
  1. . S $P(^PXD(801.1,IEN,5),U,2)=NOUT
  1. . S IENS=IEN_","
  1. . S FDA(801.1,IENS,47)="TEXTOUT"
  1. . D UPDATE^DIE("","FDA","","MSG")
  1. I (NPIPE#2)=1 D
  1. .;There is an odd number of pipes.
  1. . S TEXTOUT(1)="Warning, the Order Check Text has "_NPIPE_" '|' characters."
  1. . S TEXTOUT(2)="Because this is an odd number, TIU Object expansion will not work."
  1. . S DDSERROR=1
  1. . S DDSBR="ORDER CHECK TEXT^PXRM OCR MAIN BLOCK^1"
  1. . I $D(DDS) D MSG^DDSUTL(.TEXTOUT)
  1. . E D EN^DDIOL(.TEXTOUT)
  1. Q
  1. ;
  1. ;=============================================
  1. FORMPRE(IEN) ;Form pre-action.
  1. ;If the term is defined, do not allow navigation to the definition.
  1. N VALUE
  1. S VALUE=$S($$DEDOK(IEN):0,1:1)
  1. D UNED^DDSUTL("DEFINITION","PXRM OCR MAIN BLOCK",1,VALUE)
  1. ;If the definition is defined do not allow navigation to the term.
  1. S VALUE=$S($$TEDOK(IEN):0,1:1)
  1. D UNED^DDSUTL("TERM","PXRM OCR MAIN BLOCK",1,VALUE)
  1. Q
  1. ;
  1. ;=============================================
  1. SMANEDIT(IEN,NEW) ;Invoke the ScreeMan editor for entry IEN.
  1. N DA,DR,DDSCHANG,DDSFILE,DDSPARM,DDSSAVE,RESTRICT,RULCLASS
  1. S DDSFILE=801.1,DDSPARM="CS"
  1. S RULCLASS=$P($G(^PXD(801.1,IEN,100)),U,1)
  1. S RESTRICT=$S($G(PXRMINST):0,RULCLASS="N":1,1:0)
  1. S DR=$S(RESTRICT:"[PXRM OCR EDIT RESTRICTED]",1:"[PXRM OCR EDIT]")
  1. S DA=IEN
  1. D ^DDS
  1. ;If the entry is new and the user did not save, delete it.
  1. I $G(NEW),$G(DDSSAVE)'=1 D DELETE^PXRMEXFI(801.1,IEN) Q
  1. ;If changes were made update the edit history.
  1. I $G(DDSCHANG)'=1 Q
  1. ;Make sure the change was not a deletion.
  1. I '$D(^PXD(801.1,IEN)) Q
  1. ;Update the edit history.
  1. N IENS,FDA,FDAIEN,MSG
  1. S IENS="+1,"_IEN_","
  1. S FDA(801.13,IENS,.01)=$$NOW^XLFDT
  1. S FDA(801.13,IENS,1)=DUZ
  1. D UPDATE^DIE("S","FDA","FDAIEN","MSG")
  1. K DA,DDSFILE
  1. S DA=FDAIEN(1),DA(1)=IEN
  1. S DDSFILE=801.1,DDSFILE(1)=801.13
  1. S DR="[PXRM OCR EDIT HISTORY]"
  1. D ^DDS
  1. Q
  1. ;
  1. ;=============================================
  1. TCAP(IEN) ;This is the executable caption for the term.
  1. ;I '$$TEDOK(IEN) Q ""
  1. I '$$TEDOK(IEN) Q " "
  1. N TIEN
  1. S TIEN=$$GET^DDSVAL(801.1,IEN,"REMINDER TERM")
  1. I TIEN="" Q "TERM: "
  1. Q "TERM: "_$P(^PXRMD(811.5,TIEN,0),U,1)
  1. ;
  1. ;=============================================
  1. TEDOK(IEN) ;The term in a rule can be edited as long as a definition has
  1. ;not been defined.
  1. I $$GET^DDSVAL(801.1,IEN,"REMINDER DEFINITION")="" Q 1
  1. Q 0
  1. ;
  1. ;=============================================
  1. TDEL(IEN,OLD,NEW) ;Kill logic for AT cross-reference.
  1. I $G(NEW)>0 Q
  1. D DELFIELD(IEN,21)
  1. Q
  1. ;
  1. ;=============================================
  1. TPOST(IEN) ;Term post-action.
  1. ;If the term is defined, do not allow navigation to the definition.
  1. N VALUE
  1. S VALUE=$S($$DEDOK(IEN):0,1:1)
  1. D UNED^DDSUTL("DEFINITION","PXRM OCR MAIN BLOCK",1,VALUE)
  1. Q
  1. ;