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

ORORDDSC.m

Go to the documentation of this file.
  1. ORORDDSC ; SLC/AGP - API for returning Order Dialogs Structure;Dec 08, 2021@10:53:21
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**301,295,280,405**;Dec 17, 1997;Build 211
  1. ;
  1. BEG(OUTPUT,IEN,TYPE,CNT) ;
  1. N DTYPE,NODE
  1. S NODE=$G(^ORD(101.41,IEN,0))
  1. S DTYPE=$S(TYPE="Q":"Quick Order",TYPE="M":"Menu",TYPE="D":"Dialog",TYPE="O":"Order Set",TYPE="A":"Action",1:"")
  1. S CNT=CNT+1 S @OUTPUT@(CNT)=$$REPEAT^XLFSTR("-",79)
  1. S CNT=CNT+1 S @OUTPUT@(CNT)=$J(" ",24)_"Name: "_$P(NODE,U)
  1. S CNT=CNT+1 S @OUTPUT@(CNT)=$J(" ",24)_"Type: "_DTYPE
  1. I $P(NODE,U,3)'="" S CNT=CNT+1,@OUTPUT@(CNT)=$J(" ",21)_"Disable: "_$P(NODE,U,3)
  1. I $P(NODE,U,2)'="" S CNT=CNT+1 S @OUTPUT@(CNT)=$J(" ",16)_"Display Text: "_$P(NODE,U,2)
  1. I TYPE="Q" D Q
  1. .S CNT=CNT+1 S @OUTPUT@(CNT)=$J(" ",15)_"Display Group: "_$$GETDISGP($P(NODE,U,5))
  1. .S CNT=CNT+1 S @OUTPUT@(CNT)=$J(" ",21)_"Package: "_$$NMSP($P(NODE,U,7))
  1. Q
  1. ;
  1. DIALOG(OUTPUT,IEN,TYPE,CNT) ;
  1. D BEG(.OUTPUT,IEN,TYPE,.CNT)
  1. S CNT=CNT+1,@OUTPUT@(CNT)=$$REPEAT^XLFSTR("-",79)
  1. Q
  1. ;
  1. EN(IEN,SUB) ;
  1. I $D(^TMP($J,SUB,IEN))>0 Q
  1. N CNT,OUTPUT
  1. S CNT=0
  1. S OUTPUT=$NA(^TMP($J,SUB,IEN))
  1. D DIRECT(.OUTPUT,IEN,.CNT)
  1. Q
  1. ;
  1. DIRECT(OUTPUT,IEN,CNT) ;
  1. N ORDIALOG,SAFEIEN,TYPE
  1. S TYPE=$P($G(^ORD(101.41,IEN,0)),U,4)
  1. I TYPE="Q" D Q
  1. .;done to prevent a problem with TIU Active Medication Objects
  1. .;killing the variable IEN
  1. .S ORTYPE="Z"
  1. .S SAFEIEN=IEN
  1. .D GETQDLG^ORCD(IEN)
  1. .D QO(.ORDIALOG,SAFEIEN,.OUTPUT,.CNT)
  1. I TYPE="M"!(TYPE="O") D MENU(.OUTPUT,IEN,TYPE,.CNT) Q
  1. I TYPE="D"!(TYPE="A") D DIALOG(.OUTPUT,IEN,TYPE,.CNT) Q
  1. Q
  1. ;
  1. GETDISGP(IEN) ;
  1. N RESULT
  1. S RESULT=$P($G(^ORD(100.98,IEN,0)),U)
  1. Q RESULT
  1. ;
  1. D BEG(.OUTPUT,IEN,TYPE,.CNT)
  1. N NODE,NUM,SEQ,ITEM
  1. S SEQ="" F S SEQ=$O(^ORD(101.41,IEN,10,"B",SEQ)) Q:SEQ="" D
  1. .S NUM=$O(^ORD(101.41,IEN,10,"B",SEQ,"")) Q:NUM=""
  1. .S ITEM=+$P($G(^ORD(101.41,IEN,10,NUM,0)),U,2) I ITEM'>0 Q
  1. .S CNT=CNT+1,@OUTPUT@(CNT)=$J(" ",25)_"SEQ: "_SEQ
  1. .D DIRECT(.OUTPUT,ITEM,.CNT)
  1. S CNT=CNT+1,@OUTPUT@(CNT)=$$REPEAT^XLFSTR("-",79)
  1. Q
  1. ;
  1. NMSP(PKG) ;
  1. Q $$GET1^DIQ(9.4,+PKG_",",.01)
  1. ;
  1. QO(ORDIALOG,IEN,OUTPUT,CNT) ; -- Display new order on screen
  1. N SEQ,DA,X,PROMPT,MULT,NL,NOUT,I,TEXT,TEXTOUT,TIDX,TITLE,LEN,X
  1. D BEG(.OUTPUT,IEN,"Q",.CNT)
  1. S SEQ=0 F S SEQ=$O(^ORD(101.41,+ORDIALOG,10,"B",SEQ)) Q:SEQ'>0 D
  1. . S DA=0 F S DA=$O(^ORD(101.41,+ORDIALOG,10,"B",SEQ,DA)) Q:'DA D
  1. .. S X=$G(^ORD(101.41,+ORDIALOG,10,DA,0)) Q:$P(X,U,11) ;child
  1. .. S PROMPT=$P(X,U,2),MULT=$P(X,U,7) Q:$P(X,U,9)["*" ;hide
  1. .. Q:'PROMPT S I=$O(ORDIALOG(PROMPT,0)) Q:'I ; no values
  1. .. S TITLE=$S($L($G(ORDIALOG(PROMPT,"TTL"))):ORDIALOG(PROMPT,"TTL"),1:ORDIALOG(PROMPT,"A"))
  1. .. S CNT=CNT+1,@OUTPUT@(CNT)=$J(TITLE,30)
  1. .. I $E(ORDIALOG(PROMPT,0))="W" D
  1. ...S TIDX=0,NL=0 F S TIDX=$O(^TMP("ORWORD",$J,PROMPT,I,TIDX)) Q:TIDX'>0 D
  1. ....S NL=NL+1,TEXT(NL)=^TMP("ORWORD",$J,PROMPT,I,TIDX,0)
  1. ...D FORMAT^PXRMTEXT(1,40,NL,.TEXT,.NOUT,.TEXTOUT)
  1. ...F X=1:1:NOUT D
  1. ....I X=1 S @OUTPUT@(CNT)=@OUTPUT@(CNT)_TEXTOUT(X) Q
  1. ....S CNT=CNT+1,@OUTPUT@(CNT)=$J(" ",30)_TEXTOUT(X)
  1. ...; S @OUTPUT@(CNT)=@OUTPUT@(CNT)_$E($G(^TMP("ORWORD",$J,PROMPT,I,1,0)),1,40)_$S($L($G(^(0)))>40:" ...",$O(^TMP("ORWORD",$J,PROMPT,I,1)):" ...",1:"") Q
  1. .. I $E(ORDIALOG(PROMPT,0))'="W" D
  1. ... S @OUTPUT@(CNT)=@OUTPUT@(CNT)_$$ITEM^ORCDLG(PROMPT,I) Q:'MULT Q:'$O(ORDIALOG(PROMPT,I)) ; done
  1. .. F S I=$O(ORDIALOG(PROMPT,I)) Q:I'>0 D
  1. ... S CNT=CNT+1,@OUTPUT@(CNT)=$J(" ",30)_$$ITEM^ORCDLG(PROMPT,I)
  1. S CNT=CNT+1,@OUTPUT@(CNT)=$$REPEAT^XLFSTR("-",79)
  1. Q
  1. ;