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

ORY377O.m

Go to the documentation of this file.
  1. ORY377O ;SLC/AGP - CPRS VERSION 31 QUICK ORDER CONVERSION ;02/07/19 10:59
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**377**;Dec 17, 1997;Build 582
  1. Q
  1. AUTODC ;
  1. N DA,DIC,DIE,ERR,EVENT,EVENTS,FDA,IENS,IEN,NAME,NODE,OI,OIS,ORMGR,DR,TEXT,X,Y
  1. ;get list orderable items
  1. S NAME="" F S NAME=$O(^ORD(101.43,"S.DIET",NAME)) Q:NAME="" I $P(NAME," ")="NPO" D
  1. .S IEN=0 F S IEN=$O(^ORD(101.43,"S.DIET",NAME,IEN)) Q:IEN'>0 S OIS(IEN)=NAME
  1. ; get list of Auto DC rules
  1. S IEN=0 F S IEN=$O(^ORD(100.6,IEN)) Q:IEN'>0 D
  1. .S NODE=$G(^ORD(100.6,IEN,0)) I "OST"'[$P(NODE,U,2) Q
  1. .S EVENTS(IEN)=$P(NODE,U)
  1. ;process EVENTS array and update the file
  1. S IEN=0 F S IEN=$O(EVENTS(IEN)) Q:IEN'>0 D
  1. .K DA
  1. .S EVENT=EVENTS(IEN),DA(1)=IEN
  1. .K FDA
  1. .S X=IEN
  1. .S OI=0 F S OI=$O(OIS(OI)) Q:OI'>0 D
  1. ..S NAME=OIS(OI)
  1. ..I $D(^ORD(100.6,DA(1),8,"B",OI)) Q
  1. ..S TEXT(1)=" Adding OI "_NAME_" to "
  1. ..S TEXT(2)=" Auto-DC Rule: "_EVENT
  1. ..D MES^XPDUTL(.TEXT)
  1. ..S DIC="^ORD(100.6,"_DA(1)_",8,",X=OI,DIC(0)="L"
  1. ..L +^ORD(100.6,DA(1)):DILOCKTM
  1. ..E D MES^XPDUTL(" Cannot get lock on entry: "_EVENT) Q
  1. ..S ORMGR=1
  1. ..D FILE^DICN
  1. ..I Y=-1 D Q
  1. ...L -^ORD(100.6,DA(1))
  1. ...K TEXT
  1. ...S TEXT(1)=" Error adding OI "_NAME_" to "
  1. ...S TEXT(2)=" Auto-DC Rule: "_EVENT
  1. ...D MES^XPDUTL(.TEXT)
  1. ..;update lock field
  1. ..I $P($G(^ORD(100.6,DA(1),8,$P(Y,U),0)),U)=X S $P(^ORD(100.6,DA(1),8,$P(Y,U),0),U,2)=1
  1. ..L -^ORD(100.6,DA(1))
  1. Q
  1. ;
  1. EN ;
  1. ;I $$PATCH^XPDUTL("OR*3.0*377") Q
  1. D TASK("PROCESS^ORY377O","Update to Dietetic Quick Orders")
  1. D TASK("PSOQOUPD^ORY377O","Update to Outpatient Meds Quick Orders")
  1. D TASK("RADQOUPD^ORY377O","Update to Radiology Quick Orders")
  1. Q
  1. ;
  1. TASK(ZTRTN,ZTDESC) ;
  1. N ZTDTH,ZTSAVE,ZTIO,TEXT,ZTSK
  1. S TEXT=" "_ZTDESC_" has been queued, task number "
  1. S ZTIO=""
  1. S ZTDTH=$$NOW^XLFDT
  1. D ^%ZTLOAD
  1. I $D(ZTSK) S TEXT=TEXT_ZTSK D MES^XPDUTL(.TEXT)
  1. Q
  1. ;
  1. GETTYPE(TYPE) ;
  1. N RESULT S RESULT=$S(TYPE="Q":"Quick Order",TYPE="M":"Menu",TYPE="D":"Dialog",TYPE="O":"Order Set",TYPE="A":"Action",1:"")
  1. Q RESULT
  1. ;
  1. PROCESS ;
  1. N ARRAY,CNT,DIALOG,ERRORS,IEN,INPUT,ISTUBE,LIST,NUM,NODE,ORDIEN,PROMPT,PROMPTS,PTR,PTRS,SUB
  1. K ^XTMP("OR QO DIALOG CONVERSION CPRS 31")
  1. S ^XTMP("OR QO DIALOG CONVERSION CPRS 31",0)=$$FMADD^XLFDT(DT,30)_U_DT_U_"CPRS 31 Quick Order Conversion"
  1. S SUB="OR FHW QO"
  1. K ^TMP($J,SUB)
  1. S INPUT("FHW1")=""
  1. S INPUT("FHW OP MEAL")=""
  1. S INPUT("FHW8")=""
  1. D FINDQO^ORQOUTL(.ARRAY,.INPUT,SUB,1,1)
  1. S DIALOG="" F S DIALOG=$O(INPUT(DIALOG)) Q:DIALOG="" D
  1. .S PROMPT=$S(DIALOG="FHW1":"OR GTX STOP DATE/TIME",1:"") I PROMPT="" Q
  1. .S PTR=$O(^ORD(101.41,"B",PROMPT,"")) Q:PTR'>0
  1. .S PTRS("STOP")=PTR
  1. .S PROMPT="OR GTX CANCEL FUTURE ORDERS"
  1. .S PTR=$O(^ORD(101.41,"B",PROMPT,"")) Q:PTR'>0
  1. .S PTRS("CANCEL")=PTR
  1. .S IEN=0 F S IEN=$O(^TMP($J,SUB,IEN)) Q:IEN'>0 D
  1. ..S ORDIEN=+$G(^TMP($J,SUB,IEN,"ORDIALOG")) I ORDIEN'>0 Q
  1. ..S ISTUBE=$S($P($G(^ORD(101.41,ORDIEN,0)),U)="FHW8":1,1:0)
  1. ..S PTR=$S(ISTUBE=1:PTRS("CANCEL"),ISTUBE=0:PTRS("STOP"),1:"") I PTR'>0 Q
  1. ..I $G(^TMP($J,SUB,IEN,"ORDIALOG",PTR,1))="" Q
  1. ..S NUM=+$P($G(^TMP($J,SUB,IEN,"ORDIALOG",PTR)),U)
  1. ..S NODE=$G(^TMP($J,SUB,IEN))
  1. ..S LIST($P(NODE,U),IEN)=NODE
  1. ..K ^TMP($J,"OR DESC")
  1. ..D EN^ORORDDSC(IEN,"OR DESC")
  1. ..M ^TMP($J,SUB,IEN,"BEFORE")=^TMP($J,"OR DESC",IEN)
  1. ..M ^XTMP("OR QO DIALOG CONVERSION CPRS 31",IEN)=^ORD(101.41,IEN)
  1. ..I $$UPDATE(IEN,PTR,NUM,NODE,.ERRORS)=0 K LIST($P(NODE,U),IEN),^XTMP("OR QO DIALOG CONVERSION CPRS 31",IEN) Q
  1. ..I ISTUBE=1 S $P(^ORD(101.41,IEN,0),U,8)=0,$P(^ORD(101.41,IEN,5),U,8)=""
  1. ..K ^TMP($J,"OR DESC")
  1. ..D EN^ORORDDSC(IEN,"OR DESC")
  1. ..M ^TMP($J,SUB,IEN,"AFTER")=^TMP($J,"OR DESC",IEN)
  1. D REPORT(.LIST,.ERRORS,SUB)
  1. K ^TMP($J,"OR DESC")
  1. Q
  1. ;
  1. ORDERM(SUB,IEN,CNT) ;
  1. N NL,NODE,NOUT,P,SPACER,SPACERI,TEMP,TEXT,TEXTOUT,TYPE,X,Y
  1. S CNT=CNT+1,^TMP("OR MSG",$J,CNT,0)=$$RJ^XLFSTR("Order Menus: ",23)
  1. S X=0,NL=0 F S X=$O(^TMP($J,SUB,IEN,"ORDER MENUS",X)) Q:X'>0 D
  1. .S SPACER=" ",Y=""
  1. .S NODE=$G(^TMP($J,SUB,IEN,"ORDER MENUS",X)) S TYPE=$P(NODE,U,4)
  1. .S NL=NL+1,TEXT(NL)=SPACER_TYPE_": "_$P(NODE,U)_"\\"
  1. .;I NL>1 S NL=NL+1,TEXT(NL)="\\"
  1. .;S NODE=$G(^TMP($J,SUB,IEN,"ORDER MENUS",X,Y)) S TYPE=$P(NODE,U,5)
  1. .;F S Y=$O(^TMP($J,SUB,IEN,"ORDER MENUS",X,Y)) Q:Y="" D
  1. .;.S NODE=$G(^TMP($J,SUB,IEN,"ORDER MENUS",X,Y)) S TYPE=$P(NODE,U,5)
  1. .;.I Y'["." S SPACER=SPACERI
  1. .;.I Y["." D
  1. .;..S TEMP="" F P=1:1:$L(Y,".")-1 S TEMP=TEMP_" "
  1. .;..S SPACER=SPACERI_TEMP
  1. .;.S NL=NL+1,TEXT(NL)=SPACER_TYPE_": "_$P(NODE,U,2)_"\\",SPACER=SPACER_" "
  1. D FORMAT^PXRMTEXT(23,74,.NL,.TEXT,.NOUT,.TEXTOUT)
  1. F X=1:1:NOUT S CNT=CNT+1,^TMP("OR MSG",$J,CNT,0)=TEXTOUT(X)
  1. Q
  1. ;
  1. QO(SUB,IEN,NODE,NAME,CNT) ;
  1. N I,NL,NOUT,TEXT,TEXTOUT,X
  1. K TEXT S NL=1,TEXT(NL)="\\",NL=NL+1,TEXT(NL)=$$RJ^XLFSTR("Name: ",23)_NAME_" (IEN: "_IEN_")\\"
  1. S NL=NL+1,TEXT(NL)=$$RJ^XLFSTR("Display Name: ",23)_$P(NODE,U,2)_"\\"
  1. S NL=NL+1,TEXT(NL)=$$RJ^XLFSTR("Personal Quick Order: ",23)_$S($G(^TMP($J,SUB,IEN,"ISPERQO"))=1:"Yes",1:"No")_"\\"
  1. D FORMAT^PXRMTEXT(1,74,.NL,.TEXT,.NOUT,.TEXTOUT)
  1. F X=1:1:NOUT S CNT=CNT+1,^TMP("OR MSG",$J,CNT,0)=TEXTOUT(X)
  1. I $D(^TMP($J,SUB,IEN,"BEFORE")) D
  1. .S CNT=CNT+1,^TMP("OR MSG",$J,CNT,0)="Before:"
  1. .S I=0 F S I=$O(^TMP($J,SUB,IEN,"BEFORE",I)) Q:I'>0 D
  1. ..S CNT=CNT+1,^TMP("OR MSG",$J,CNT,0)=^TMP($J,SUB,IEN,"BEFORE",I)
  1. ;
  1. I $D(^TMP($J,SUB,IEN,"AFTER")) D
  1. .S CNT=CNT+1,^TMP("OR MSG",$J,CNT,0)="After:"
  1. .S I=0 F S I=$O(^TMP($J,SUB,IEN,"AFTER",I)) Q:I'>0 D
  1. ..S CNT=CNT+1,^TMP("OR MSG",$J,CNT,0)=^TMP($J,SUB,IEN,"AFTER",I)
  1. Q
  1. ;
  1. REMIND(SUB,IEN,CNT) ;
  1. N NL,NODE,NOUT,SPACER,TEXT,TEXTOUT,TYPE,X,Y
  1. S CNT=CNT+1,^TMP("OR MSG",$J,CNT,0)=$$RJ^XLFSTR("Reminder Dialogs: ",23)
  1. S X=0,NL=0 F S X=$O(^TMP($J,SUB,IEN,"REMINDER DIALOGS",X)) Q:X'>0 D
  1. .I NL>0 S NL=NL+1,TEXT(NL)="\\"
  1. .S Y=0 F S Y=$O(^TMP($J,SUB,IEN,"REMINDER DIALOGS",X,Y)) Q:Y'>0 D
  1. ..S NODE=$G(^TMP($J,SUB,IEN,"REMINDER DIALOGS",X,Y))
  1. ..S NL=NL+1,TEXT(NL)=" "_NODE_"\\"
  1. D FORMAT^PXRMTEXT(23,74,.NL,.TEXT,.NOUT,.TEXTOUT)
  1. F X=1:1:NOUT S CNT=CNT+1,^TMP("OR MSG",$J,CNT,0)=TEXTOUT(X)
  1. Q
  1. ;
  1. REPORT(LIST,ERRORS,SUB) ;
  1. K ^TMP("OR MSG",$J),XMY
  1. N CNT,I,IEN,NAME,NL,NODE,NOUT,TEXT,TEXTOUT,TYPE,SAPCER,X,XMDUZ,XMSUB,XMTEXT,Y
  1. S CNT=0,XMDUZ="CPRS, SEARCH",XMSUB="DIETETICS QUICK ORDER CONVERSION",XMTEXT="^TMP(""OR MSG"",$J,",XMY(DUZ)="",XMY("G.OR CACS")=""
  1. S CNT=CNT+1,^TMP("OR MSG",$J,CNT,0)="The following report lists Dietetics Quick Orders where the expiration date"
  1. S CNT=CNT+1,^TMP("OR MSG",$J,CNT,0)="and/or the Cancel Future Tray Order was removed"
  1. S NAME="" F S NAME=$O(LIST(NAME)) Q:NAME="" D
  1. .S IEN=0 F S IEN=$O(LIST(NAME,IEN)) Q:IEN'>0 D
  1. ..S NODE=LIST(NAME,IEN) I '$D(^TMP($J,SUB,IEN)) Q
  1. ..D QO(SUB,IEN,NODE,NAME,.CNT)
  1. ..;
  1. ..I $D(^TMP($J,SUB,IEN,"ORDER MENUS")) D ORDERM(SUB,IEN,.CNT)
  1. ..;
  1. ..I $D(^TMP($J,SUB,IEN,"REMINDER DIALOGS")) D REMIND(SUB,IEN,.CNT)
  1. ..;W !
  1. ..;S I=0 F S I=$O(^TMP("OR MSG",$J,I)) Q:I'>0 W !,^TMP("OR MSG",$J,I,0)
  1. I $D(ERRORS) D
  1. .S CNT=CNT+1,^TMP("OR MSG",$J,CNT,0)=" "
  1. .S CNT=CNT+1,^TMP("OR MSG",$J,CNT,0)="The following quick orders had an error."
  1. .S CNT=CNT+1,^TMP("OR MSG",$J,CNT,0)="Please inactive and replace the quick order(s) with a new one."
  1. .S NAME="" F S NAME=$O(ERRORS(NAME)) Q:NAME="" D
  1. ..S IEN=0 F S IEN=$O(ERRORS(NAME,IEN)) Q:IEN'>0 D
  1. ...S NODE=ERRORS(NAME,IEN) I '$D(^TMP($J,SUB,IEN)) Q
  1. ...D QO(SUB,IEN,NODE,NAME,.CNT)
  1. ...;
  1. ...I $D(^TMP($J,SUB,IEN,"ORDER MENUS")) D ORDERM(SUB,IEN,.CNT)
  1. ...;
  1. ...I $D(^TMP($J,SUB,IEN,"REMINDER DIALOGS")) D REMIND(SUB,IEN,.CNT)
  1. ;
  1. I CNT=2 S CNT=CNT+1,^TMP("OR MSG",$J,CNT,0)="None Found"
  1. D ^XMD
  1. Q
  1. ;
  1. UPDATE(IEN,PTR,NUM,NODE,ERRORS) ;
  1. N ERR,FDA,ID,IENS
  1. S ID=$O(^ORD(101.41,IEN,6,"D",PTR,"")) Q:ID'>0
  1. S IENS=ID_","_IEN_","
  1. S FDA(101.416,IENS,.01)=NUM
  1. S FDA(101.416,IENS,.02)=PTR
  1. S FDA(101.416,IENS,.03)=1
  1. S FDA(101.416,IENS,1)=""
  1. D FILE^DIE("","FDA","ERR")
  1. I $D(ERR) S ERRORS($P(NODE,U),IEN)=NODE Q 0
  1. Q 1
  1. ;
  1. SETDG ;
  1. N DA,DIC,ORDG,X,DLAYGO,Y,DTOUT,DUOUT
  1. S ORDG=$O(^ORD(100.98,"B","ALL SERVICES",0)) Q:'ORDG
  1. S X=$O(^ORD(100.98,"B","CLINIC SCHEDULING",0)),DA(1)=ORDG I 'X D MES^XPDUTL(" 'Clinic Scheduling' display group not found") Q
  1. I $O(^ORD(100.98,DA(1),1,"B",X,0)) D MES^XPDUTL(" Display group already attached") Q ;not first install - done.
  1. S:'$D(^ORD(100.98,DA(1),1,0)) ^(0)="^100.981P^^"
  1. S DIC="^ORD(100.98,"_DA(1)_",1,",DIC(0)="NLX",DLAYGO=100.98
  1. S X="CLINIC SCHEDULING" D ^DIC
  1. Q
  1. ;
  1. SETPAR ;
  1. N X
  1. I '$D(^ORD(100.98,"B","CLINIC SCHEDULING")) D MES^XPDUTL(" Display group already attached") Q
  1. S X=0,X=$O(^ORD(100.98,"B","CLINIC SCHEDULING",X)) Q:'X D
  1. . D PUT^XPAR("PKG","ORWOR CATEGORY SEQUENCE",135,X)
  1. ;update scheduling offset parameter
  1. D PUT^XPAR("SYS","OR SD CIDC STOP OFFSET",1,30)
  1. Q
  1. ;
  1. PSOQOUPD ;Clean up any Conjunction entries in Outpatient Med Quick Orders that are set to "X" for Except
  1. ;
  1. ; ZEXCEPT: ZTREQ
  1. N ORARRAY,ORINPUT,ORIEN,ORIEN2,ORNAME,ORPROMPT,ORSUB
  1. ;
  1. S ZTREQ="@"
  1. S ORSUB="OR PSOQOUPD"
  1. K ^TMP($J,ORSUB)
  1. I '$D(^XTMP("OR OUTPATIENT MED QO CPRS 31")) D
  1. . S $P(^XTMP("OR OUTPATIENT MED QO CPRS 31",0),U,2)=$$NOW^XLFDT
  1. S $P(^XTMP("OR OUTPATIENT MED QO CPRS 31",0),U,1)=$$FMADD^XLFDT($$NOW^XLFDT,90)
  1. ;
  1. S ORPROMPT=$O(^ORD(101.41,"B","OR GTX AND/THEN",""))
  1. I ORPROMPT'>0 Q
  1. ;
  1. S ORINPUT("PSO OERR")=""
  1. D FINDQO^ORQOUTL(.ORARRAY,.ORINPUT,ORSUB,1,1)
  1. ;
  1. S ORIEN=""
  1. F S ORIEN=$O(^TMP($J,ORSUB,ORIEN)) Q:'ORIEN D
  1. . I '$D(^ORD(101.41,ORIEN)) Q
  1. . I '$D(^TMP($J,ORSUB,ORIEN,"ORDIALOG",ORPROMPT)) Q
  1. . ;
  1. . S ORIEN2=0
  1. . F S ORIEN2=$O(^ORD(101.41,ORIEN,6,"D",ORPROMPT,ORIEN2)) Q:'ORIEN2 D
  1. . . I $G(^ORD(101.41,ORIEN,6,ORIEN2,1))'="X" Q
  1. . . ;
  1. . . S ORNAME=$P($G(^ORD(101.41,ORIEN,0)),U,1)
  1. . . I ORNAME="" Q
  1. . . S ^TMP($J,ORSUB,"B",ORNAME,ORIEN)=""
  1. . . ;
  1. . . ; Before QO Capture
  1. . . I '$D(^TMP($J,ORSUB,ORIEN,"BEFORE")) D
  1. . . . K ^TMP($J,"OR DESC")
  1. . . . D EN^ORORDDSC(ORIEN,"OR DESC")
  1. . . . M ^TMP($J,ORSUB,ORIEN,"BEFORE")=^TMP($J,"OR DESC",ORIEN)
  1. . . ;
  1. . . ; Backup QO to XTMP
  1. . . I '$D(^XTMP("OR OUTPATIENT MED QO CPRS 31",ORIEN)) D
  1. . . . M ^XTMP("OR OUTPATIENT MED QO CPRS 31",ORIEN)=^ORD(101.41,ORIEN)
  1. . . ;
  1. . . ; Remove Except conjunction
  1. . . S ^ORD(101.41,ORIEN,6,ORIEN2,1)=""
  1. . . ;
  1. . . ; After QO Capture
  1. . . K ^TMP($J,"OR DESC")
  1. . . D EN^ORORDDSC(ORIEN,"OR DESC")
  1. . . M ^TMP($J,ORSUB,ORIEN,"AFTER")=^TMP($J,"OR DESC",ORIEN)
  1. ;
  1. ; Email report
  1. D PSOQORPT(ORSUB)
  1. ;
  1. K ^TMP($J,"OR DESC")
  1. K ^TMP($J,ORSUB)
  1. ;
  1. Q
  1. ;
  1. RADQOUPD ; Update Radiology quick orders
  1. N SUB,ARRAY,INPUT,ORPROMPT,IEN,IDX,VAL
  1. S ORPROMPT=$O(^ORD(101.41,"B","OR GTX URGENCY",""))
  1. I ORPROMPT'>0 Q
  1. S SUB="OR RADQOUPD"
  1. K ^TMP($J,SUB)
  1. S INPUT("RA OERR EXAM")=""
  1. D FINDQO^ORQOUTL(.ARRAY,.INPUT,SUB,0,0)
  1. S IEN=0 F S IEN=$O(^TMP($J,SUB,IEN)) Q:IEN'>0 D
  1. . S IDX=0 F S IDX=$O(^ORD(101.41,IEN,6,IDX)) Q:IDX'>0 D
  1. . . I $P($G(^ORD(101.41,IEN,6,IDX,0)),U,2)'=ORPROMPT Q
  1. . . S VAL=$G(^ORD(101.41,IEN,6,IDX,1))
  1. . . I "^1^2^9^"[(U_VAL_U) Q ; Valid Urgencies
  1. . . S ^ORD(101.41,IEN,6,IDX,1)=9 ; Set to Routine Urgency
  1. K ^TMP($J,SUB)
  1. Q
  1. ;
  1. PSOQORPT(ORSUB) ;Send a mailman message of updated Outpatient Med QOs
  1. ;
  1. N ORCNT,ORIEN,ORNAME,ORNODE,XMDUZ,XMSUB,XMTEXT,XMY,XMMG
  1. ;
  1. K ^TMP("OR MSG",$J)
  1. S ORCNT=0
  1. ;
  1. S ORCNT=ORCNT+1,^TMP("OR MSG",$J,ORCNT,0)="The following report lists Outpatient Medication Quick Orders where the "
  1. S ORCNT=ORCNT+1,^TMP("OR MSG",$J,ORCNT,0)="conjunction was set to EXCEPT. These Quick Orders have had the and/then "
  1. S ORCNT=ORCNT+1,^TMP("OR MSG",$J,ORCNT,0)="prompt cleared of this value."
  1. S ORCNT=ORCNT+1,^TMP("OR MSG",$J,ORCNT,0)=""
  1. ;
  1. S ORNAME=""
  1. F S ORNAME=$O(^TMP($J,ORSUB,"B",ORNAME)) Q:ORNAME="" D
  1. . S ORIEN=0
  1. . F S ORIEN=$O(^TMP($J,ORSUB,"B",ORNAME,ORIEN)) Q:ORIEN'>0 D
  1. . . I '$D(^TMP($J,ORSUB,ORIEN)) Q
  1. . . S ORNODE=$G(^TMP($J,ORSUB,ORIEN))
  1. . . D QO(ORSUB,ORIEN,ORNODE,ORNAME,.ORCNT)
  1. . . ;
  1. . . I $D(^TMP($J,ORSUB,ORIEN,"ORDER MENUS")) D ORDERM(ORSUB,ORIEN,.ORCNT)
  1. . . ;
  1. . . I $D(^TMP($J,ORSUB,ORIEN,"REMINDER DIALOGS")) D REMIND(ORSUB,ORIEN,.ORCNT)
  1. ;
  1. I ORCNT=4 D
  1. . S ORCNT=ORCNT+1,^TMP("OR MSG",$J,ORCNT,0)="None Found"
  1. ;
  1. S XMDUZ="CPRS, SEARCH"
  1. S XMSUB="OUTPATIENT MED QUICK ORDER CONVERSION"
  1. S XMTEXT="^TMP(""OR MSG"",$J,"
  1. S XMY(DUZ)=""
  1. S XMY("G.OR CACS")=""
  1. D ^XMD
  1. ;
  1. Q