ORQ2 ; SLC/MKB/GSS - Detailed Order Report ;Aug 9, 2021@13:40:01
 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**12,56,75,94,141,213,195,243,282,293,280,346,361,471,453,405**;Dec 17, 1997;Build 211
 ;
 ;
 ;Reference to ^DIC(45.7 supported by IA #519
 ;Reference to OERR^VADPT supported by IA #4325
 ;Reference to CODECS^ICDEX supported by ICR #5747
 ;
DETAIL(ORY,ORIFN) ; -- Returns details of order ORIFN in ORY(#)
 N X,X2,I,CNT,ORDIALOG,OR0,OR3,OR6,SEQ,ITEM,PRMT,MULT,FIRST,TITLE,INST,DIWL,DIWR,DIWF,ACTION,VAIN,ORIGVIEW,ORNMSP,ORYT,ORCRACT
 N ORTRANS   ; OR*3*453 rbd Var needed for ORDER TRANSFERS logic below
 ; p 471 added ORCACT to use action if passed in
 S CNT=0,ORCRACT=+$P(ORIFN,";",2),ORIFN=+ORIFN,OR0=$G(^OR(100,ORIFN,0)),OR3=$G(^(3)),OR6=$G(^(6))
 S ORNMSP=$$NMSP^ORCD($P(OR0,U,14))
 ; p 471 if no action, default to CURRENT ACTION..or if not $O(<The action subfile>, -1)
 S:'ORCRACT ORCRACT=$S(+$P(OR3,U,7):+$P(OR3,U,7),1:+$O(^OR(100,ORIFN,8,":"),-1))
 K @ORY,ORYT S ORIGVIEW=1 D TEXT^ORQ12(.ORYT,+ORIFN_";"_ORCRACT,80) ;CurrTx
 M @ORY=ORYT ;Move text to global
 S I=0 F CNT=1:1 S I=$O(ORYT(I)) Q:I'>0  D:$D(IORVON) SETVIDEO(I,1,$L(ORYT(I)),IORVON,IORVOFF)
 S CNT=CNT+1,@ORY@(CNT)="   " ;blank
D1 I $O(^OR(100,+ORIFN,2,0)) D
 . S CNT=CNT+1,@ORY@(CNT)="Sub Orders:"
 . D:$D(IOUON) SETVIDEO(CNT,1,11,IOUON,IOUOFF)
 . N IFN S IFN=0
 . F  S IFN=+$O(^OR(100,+ORIFN,2,IFN)) Q:IFN<1  I $D(^OR(100,IFN,0)) D SUB(IFN)
 . S CNT=CNT+1,@ORY@(CNT)="   " ;blank
 I $P(OR3,U,9),$D(^OR(100,+$P(OR3,U,9),0)) D
 . S CNT=CNT+1,@ORY@(CNT)="Parent Order:"
 . D:$D(IOUON) SETVIDEO(CNT,1,12,IOUON,IOUOFF)
 . D SUB(+$P(OR3,U,9))
 . S CNT=CNT+1,@ORY@(CNT)="   " ;blank
 I $P(OR3,U,11)=1,$P(OR3,U,5) D  ;Changed - show previous order
 . S CNT=CNT+1,@ORY@(CNT)="Previous Order:"
 . D:$D(IOUON) SETVIDEO(CNT,1,15,IOUON,IOUOFF) ;prev order original text
 . N ORZ,I,ORIGVIEW S ORIGVIEW=2 D TEXT^ORQ12(.ORZ,+$P(OR3,U,5),55)
 . S CNT=CNT+1,@ORY@(CNT)="     Order Text:        "_$G(ORZ(1))
 . S I=1 F  S I=$O(ORZ(I)) Q:I'>0  S CNT=CNT+1,@ORY@(CNT)=$$REPEAT^XLFSTR(" ",24)_$G(ORZ(I))
D2 S CNT=CNT+1,@ORY@(CNT)="Activity:"
 D:$D(IOUON) SETVIDEO(CNT,1,9,IOUON,IOUOFF)
 S DIWL=1,DIWR=64,DIWF="C64",ORI=0 K ^UTILITY($J,"W")
 F  S ORI=$O(^OR(100,ORIFN,8,ORI)) Q:ORI'>0  S ACTION=$G(^(ORI,0)) D ACT^ORQ20
 ; RBD OR*3.0*453 Add ORDER TRANSFERS information
 S ORI=0 F  S ORI=$O(^OR(100,ORIFN,11,ORI)) Q:ORI'>0  D
 . I ORI=1 D
 .. S CNT=CNT+1,@ORY@(CNT)="   ",CNT=CNT+1,@ORY@(CNT)="Reassignments (Transfers):"
 . S ORTRANS=$G(^OR(100,ORIFN,11,ORI,0))
 . S CNT=CNT+1,@ORY@(CNT)="Transferred from "_$$USER^ORQ20($P(ORTRANS,U,2))_" to "_$$USER^ORQ20($P(ORTRANS,U,3))
 . S CNT=CNT+1,@ORY@(CNT)="  by "_$$USER^ORQ20($P(ORTRANS,U,4))_" Effective From "_$$DATE^ORQ20($P(ORTRANS,U))
 I $D(^OR(100,ORIFN,11)) S CNT=CNT+1,@ORY@(CNT)="   "
 I "^1^12^13^"[(U_$P(OR3,U,3)_U),$L(OR6),$P(ACTION,U,2)'="DC" D DC^ORQ20
 I $P(OR3,U,3)=2,$P(OR6,U,6) S CNT=CNT+1,@ORY@(CNT)=$$DATE^ORQ20($P(OR6,U,6))_"  Completed"_$S($P(OR6,U,7):" by "_$$USER^ORQ20($P(OR6,U,7)),1:"")
 S CNT=CNT+1,@ORY@(CNT)="   " ;blank
D3 S CNT=CNT+1,@ORY@(CNT)="Current Data:"
 D:$D(IOUON) SETVIDEO(CNT,1,13,IOUON,IOUOFF)
 D VA I $G(VAIN(2)) S CNT=CNT+1,@ORY@(CNT)="Current Primary Provider:     "_$P(VAIN(2),"^",2)
 I $G(VAIN(11)) S CNT=CNT+1,@ORY@(CNT)="Current Attending Physician:  "_$P(VAIN(11),"^",2)
 S CNT=CNT+1,@ORY@(CNT)="Treating Specialty:           "_$P($G(^DIC(45.7,+$P(OR0,U,13),0)),U)
 S CNT=CNT+1,@ORY@(CNT)="Ordering Location:            "_$P($G(^SC(+$P(OR0,U,10),0)),U)
 S CNT=CNT+1,@ORY@(CNT)="Start Date/Time:              "_$S($P(OR0,U,8):$$DATE^ORQ20($P(OR0,U,8)),1:"")
 I $P(OR3,U,5),$P(OR3,U,11)=2 S X=$$ORIG(ORIFN),@ORY@(CNT)=@ORY@(CNT)_" (originally "_$$DATE^ORQ20(X)_")"
 S CNT=CNT+1,@ORY@(CNT)="Stop Date/Time:               "_$S($P(OR0,U,9):$$DATE^ORQ20($P(OR0,U,9)),1:"")
 I $P(OR3,U,3)=1,$P(OR6,U,6) S @ORY@(CNT)=@ORY@(CNT)_"  (expired "_$$DATE^ORQ20($P(OR6,U,6))_")"
 S CNT=CNT+1,@ORY@(CNT)="Current Status:               "_$S($D(^ORD(100.01,+$P(OR3,U,3),0)):$P(^(0),"^"),1:"-")
 I $$GET^XPAR("ALL","ORPF SHOW STATUS DESCRIPTION",1,"I"),$P(OR3,U,3),$D(^ORD(100.01,$P(OR3,U,3),0)) N J S J=0 F  S J=$O(^ORD(100.01,$P(OR3,U,3),1,J)) Q:J<1  S CNT=CNT+1,@ORY@(CNT)="  "_^(J,0)
 S CNT=CNT+1,@ORY@(CNT)="Order #"_ORIFN
 S CNT=CNT+1,@ORY@(CNT)="   " ;blank
D4 S CNT=CNT+1,@ORY@(CNT)="Order:" D:$D(IOUON) SETVIDEO(CNT,1,6,IOUON,IOUOFF)
 I '$O(^OR(100,ORIFN,4.5,0)),ORNMSP="RA" D RAD^ORQ21("") Q
 S ORDIALOG=$P(OR0,U,5) Q:$P(ORDIALOG,";",2)="ORD(101,"  ; 2.5 order
 D GETDLG^ORCD(+ORDIALOG),GETORDER^ORCD(ORIFN)
 I ORNMSP="GMRC" D GMRCXTRA
 S DIWL=1,DIWR=50,DIWF="C50"
 S SEQ=0 F  S SEQ=$O(^ORD(101.41,+ORDIALOG,10,"B",SEQ)) Q:SEQ'>0  S DA=0 F  S DA=$O(^ORD(101.41,+ORDIALOG,10,"B",SEQ,DA)) Q:'DA  D
 . S ITEM=$G(^ORD(101.41,+ORDIALOG,10,DA,0)) Q:$P(ITEM,U,11)  ; child
 . S PRMT=$P(ITEM,U,2),MULT=$P(ITEM,U,7) Q:$P(ITEM,U,9)["*"  ;hide
 . S FIRST=$O(ORDIALOG(PRMT,0)) Q:'FIRST  ; no values
 . S TITLE=$S(MULT&$L($G(ORDIALOG(PRMT,"TTL"))):ORDIALOG(PRMT,"TTL"),1:ORDIALOG(PRMT,"A"))
 . S TITLE=TITLE_$$REPEAT^XLFSTR(" ",30-$L(TITLE))
 . S INST=0 F  S INST=$O(ORDIALOG(PRMT,INST)) Q:INST'>0  D
 . . I $E(ORDIALOG(PRMT,0))="W" D WP Q
 . . K ^UTILITY($J,"W") S X=$$EXT^ORCD(PRMT,INST) I TITLE["Infusion Rate"&(X'="")&(X'["ml/hr") S TITLE="Infuse Over Time:",TITLE=TITLE_$$REPEAT^XLFSTR(" ",30-$L(TITLE))
 . . D ^DIWP
 . . D:$D(^ORD(101.41,+ORDIALOG,10,"DAD",PRMT)) CHILDREN(PRMT)
 . . S I=0 F  S I=$O(^UTILITY($J,"W",DIWL,I)) Q:I'>0  S CNT=CNT+1,@ORY@(CNT)=$S((INST=FIRST)&(I=1):TITLE,1:$$REPEAT^XLFSTR(" ",30))_^(I,0)
 I ORNMSP="GMRC",$G(^OR(100,ORIFN,4)) S CNT=CNT+1,@ORY@(CNT)="Consult No.:                  "_+^(4)
 S CNT=CNT+1,@ORY@(CNT)="   " ;blank
 D RAD^ORQ21(1):ORNMSP="RA",MED^ORQ21:ORNMSP="PS" ;add'l data
 D BA^ORQ21 ;call for CIDC data
D5 K ^TMP($J,"OCDATA") I $$OCAPI^ORCHECK(+ORIFN,"OCDATA") D
 . N CK,OK,X0,X,CDL,I,ACK,ALLGYDRG,HDR S HDR=0
 . D:$D(IOUON) SETVIDEO(CNT,1,13,IOUON,IOUOFF)
 . S ACK=0
 . D ALLERGY         ;405
 . S:$D(OK) OK=""    ;405
 . S CK=0 F  S CK=$O(^TMP($J,"OCDATA",CK)) Q:CK'>0  D
 .. Q:$D(ALLGYDRG(CK))  ;405
 .. S:HDR=0 CNT=CNT+1,@ORY@(CNT)=" ",CNT=CNT+1,@ORY@(CNT)="Order Checks:",HDR=1
 .. S X0=^TMP($J,"OCDATA",CK,"OC NUMBER")_U_^TMP($J,"OCDATA",CK,"OC LEVEL")_U_U_^TMP($J,"OCDATA",CK,"OR REASON")_U_^TMP($J,"OCDATA",CK,"OR PROVIDER")_U_^TMP($J,"OCDATA",CK,"OR DT")
 .. S X=^TMP($J,"OCDATA",CK,"OC TEXT",1,0)
 .. S CDL=$$CDL($P(X0,U,2)) I $P(X0,U,6),'$D(OK) S OK=$P(X0,U,4,6)
 .. I $L(X)'>68 S CNT=CNT+1,@ORY@(CNT)=CDL_X D XTRA Q
 .. S DIWL=1,DIWR=68,DIWF="C68" K ^UTILITY($J,"W") D ^DIWP
 .. S I=0 F  S I=$O(^UTILITY($J,"W",DIWL,I)) Q:I'>0  S CNT=CNT+1,@ORY@(CNT)=CDL_^(I,0),CDL="            "
 .. D XTRA
 . K ^TMP($J,"OCDATA")
 . Q:(HDR=0)     ;405 quit if only allergy-drug interactions
 . Q:'$L($G(OK))  S CNT=CNT+1,@ORY@(CNT)="Override:   "_$S($P(OK,U,2):$$USER^ORQ20($P(OK,U,2))_" on ",1:"")_$$DATE^ORQ20($P(OK,U,3))
 . I $L($P(OK,U))'>68 S CNT=CNT+1,@ORY@(CNT)="            "_$P(OK,U) Q
 . S DIWL=1,DIWR=68,DIWF="C68",X=$P(OK,U) K ^UTILITY($J,"W") D ^DIWP
 . S I=0 F  S I=$O(^UTILITY($J,"W",DIWL,I)) Q:I'>0  S CNT=CNT+1,@ORY@(CNT)="            "_^(I,0)
 K ^TMP("ORWORD",$J),^UTILITY($J,"W"),ALLGYDRG
 Q
 ;
XTRA ;
 I $O(^TMP($J,"OCDATA",CK,"OC TEXT",1)) N ORXT S ORXT=1 F  S ORXT=$O(^TMP($J,"OCDATA",CK,"OC TEXT",ORXT)) Q:'ORXT  D
 . S X=^TMP($J,"OCDATA",CK,"OC TEXT",ORXT,0),CDL="              "
 . I $L(X)'>68 S CNT=CNT+1,@ORY@(CNT)=CDL_X Q
 . S DIWL=1,DIWR=68,DIWF="C68" K ^UTILITY($J,"W") D ^DIWP
 . S I=0 F  S I=$O(^UTILITY($J,"W",DIWL,I)) Q:I'>0  S CNT=CNT+1,@ORY@(CNT)=CDL_^(I,0),CDL="              "
 I $O(^TMP($J,"OCDATA",CK,"OC TEXT",1)) S X="",CNT=CNT+1,@ORY@(CNT)="              "
 Q
 ;
SUB(IFN) ; -- add suborder or parent
 N ORCY,STS,STRT,IG,A,STOP,SCHED D TEXT^ORQ12(.ORCY,IFN,58)
 S STS=$G(^ORD(100.01,+$P($G(^OR(100,IFN,3)),U,3),.1))
 S A=^OR(100,IFN,0),STRT=$P(A,U,8),STOP=$P(A,U,9)
 S SCHED=$$VALUE^ORX8(IFN,"SCHEDULE",1,"E")
 S:STRT'="" STRT=$$DATE^ORQ20(STRT) I ORNMSP="LR" S:STOP]"" STOP=$$DATE^ORQ20(STOP)
 S IG=0 F  S IG=$O(ORCY(IG)) Q:IG<1  S CNT=CNT+1,@ORY@(CNT)=$J(STS,4)_" "_ORCY(IG)_" "_STRT,(STS,STRT)=" "
 I ORNMSP="LR",STOP]"" S CNT=CNT+1,@ORY@(CNT)=$J("How often: ",16)_SCHED_"   Stops:  "_STOP
 Q
 ;
WP ; -- add word-processing
 N WP,ORI,X M WP=@ORDIALOG(PRMT,INST)
 S CNT=CNT+1,@ORY@(CNT)=TITLE
 S ORI=0 F  S ORI=$O(WP(ORI)) Q:ORI'>0  S X=WP(ORI,0) S:X'="" CNT=CNT+1,@ORY@(CNT)="  "_X
 Q
 ;
CHILDREN(PARENT) ; -- add children
 N SEQ,DA,ITM,PRMT,TYPE,X
 S SEQ=0 F  S SEQ=$O(^ORD(101.41,+ORDIALOG,10,"DAD",PARENT,SEQ)) Q:SEQ'>0  S DA=$O(^(SEQ,0)) D
 . S ITM=$G(^ORD(101.41,+ORDIALOG,10,DA,0)),PRMT=$P(ITM,U,2)
 . Q:$G(ORDIALOG(PRMT,INST))=""  Q:$P(ITM,U,9)["*"  ;no value or hide
 . S TYPE=$E(ORDIALOG(PRMT,0)) D:TYPE="W" WP
 . I TYPE'="W" D
 . . S X=$$EXT^ORCD(PRMT,INST)
 . . I $L(X,"|")=2 S X=$$REPLACE^ORHLESC(X,"|","||")
 . . D ^DIWP
 Q
 ;
SETVIDEO(LINE,COL,WIDTH,ON,OFF) ; -- set video attributes
 S ORY("VIDEO",LINE,COL,WIDTH)=ON
 S ORY("VIDEO",LINE,COL+WIDTH,0)=OFF
 Q
 ;
VA ; -- Call VADPT
 N ORY,DFN,Y S DFN=+$P(OR0,"^",2) D OERR^VADPT
 Q
 ;
CDL(X) ; -- Returns Clinical Danger Level X
 N Y S Y=$S(X=1:"HIGH:",X=2:"MODERATE:",X=3:"LOW:",1:"NONE:")
 S Y=$E(Y_"        ",1,12)
 Q Y
 ;
ORIG(IFN) ; -- Return original start date of [renewal] order
 N I,Y,X3,DONE
 S I=IFN,Y=$P($G(^OR(100,IFN,0)),U,8),DONE=0
 F  S X3=$G(^OR(100,I,3)) D  Q:DONE
 . I $P(X3,U,11)=2,$P(X3,U,5) S I=$P(X3,U,5) Q  ;loop
 . S Y=$P($G(^OR(100,I,0)),U,8),DONE=1
 Q Y
GMRCXTRA ; expects ORDIALOG to be populated and ORIFN to be present
 N ORGMROUT,ORDGDA,ORGMRICD,ORCODE,ORISCODE,ORCODSYS
 I '$G(^OR(100,ORIFN,4)) D
 . S ORISCODE=ORDIALOG("B","CODE"),ORISCODE=$P(ORISCODE,U,2)
  . I +$G(ORISCODE)>0 D
  .. Q:'$D(ORDIALOG(ORISCODE,1))
  .. S ORCODE=ORDIALOG(ORISCODE,1)
  .. S ORCODSYS=$$CODECS^ICDEX(ORCODE,"80")
  .. S ORGMROUT=$P($G(ORCODSYS),U,2)
 I $G(^OR(100,ORIFN,4)) D
 . S ORGMROUT="ICD-9-CM"
 . Q:'$D(^GMR(123,+^OR(100,+ORIFN,4),30.1))
 . S ORGMRICD=^GMR(123,+^OR(100,+ORIFN,4),30.1)
 . I $P(ORGMRICD,U,3)="10D" S ORGMROUT="ICD-10-CM"
 S ORDGDA=$G(ORDIALOG("B","CODE"))
 Q:'$P(ORDGDA,U,2)
 S ORDGDA=$P(ORDGDA,U,2)
 Q:'$D(ORDIALOG(ORDGDA,1))
 S ORDIALOG(ORDGDA,1)="("_ORGMROUT_" "_ORDIALOG(ORDGDA,1)_")"
 Q
ALLERGY ;separate the ALLERGY-DRUG INTERACTION Order Checks (405)
 N ORRET,ORINSTAN,ORSAVINS
 S ORRET=1
 S (ACK,CK)=0 F  S CK=$O(^TMP($J,"OCDATA",CK)) Q:CK'>0  D
 . I $G(^TMP($J,"OCDATA",CK,"OC NUMBER"))'=3 Q
 . S ALLGYDRG(CK)=" "
 . I ACK=0 S CNT=CNT+1,@ORY@(CNT)=" ",CNT=CNT+1,@ORY@(CNT)="Allergy Order Checks:",CNT=CNT+1,ACK=1
 . S X0=^TMP($J,"OCDATA",CK,"OC NUMBER")_U_^TMP($J,"OCDATA",CK,"OC LEVEL")_U_U_^TMP($J,"OCDATA",CK,"OR REASON")_U_^TMP($J,"OCDATA",CK,"OR PROVIDER")_U_^TMP($J,"OCDATA",CK,"OR DT")
 . S X=^TMP($J,"OCDATA",CK,"OC TEXT",1,0)
 . S CDL=$$CDL($P(X0,U,2)) I $P(X0,U,6),'$D(OK) S OK=$P(X0,U,4,6)
 . I $L(X)'>68 S CNT=CNT+1,@ORY@(CNT)=CDL_X D XTRA Q
 . S DIWL=1,DIWR=68,DIWF="C68" K ^UTILITY($J,"W") D ^DIWP
 . S I=0 F  S I=$O(^UTILITY($J,"W",DIWL,I)) Q:I'>0  S CNT=CNT+1,@ORY@(CNT)=CDL_^UTILITY($J,"W",DIWL,I,0),CDL="            "
 . S ORINSTAN=$G(^TMP($J,"OCDATA",CK,"OC INSTANCE"))
 . I ORINSTAN>0  D
 .. I $$GET1^DIQ(100.517,ORRET_","_ORINSTAN_",",11)'=""  D
 ... S:'$D(ORSAVINS) ORSAVINS=ORINSTAN
 . D XTRA
 I ACK=1  D
 . Q:'$L($G(OK))  S CNT=CNT+1,@ORY@(CNT)="Override:   "_$S($P(OK,U,2):$$USER^ORQ20($P(OK,U,2))_" on ",1:"")_$$DATE^ORQ20($P(OK,U,3))
 . I $L($P(OK,U))'>68 S CNT=CNT+1,@ORY@(CNT)="            "_$P(OK,U),CNT=CNT+1 Q
 . S DIWL=1,DIWR=68,DIWF="C68",X=$P(OK,U) K ^UTILITY($J,"W") D ^DIWP
 . S I=0 F  S I=$O(^UTILITY($J,"W",DIWL,I)) Q:I'>0  S CNT=CNT+1,@ORY@(CNT)="            "_^UTILITY($J,"W",DIWL,I,0)
 I $D(ORSAVINS)  D
 . S CNT=CNT+1,@ORY@(CNT)="            "
 . S CNT=CNT+1,@ORY@(CNT)="Remote Comment: "_$$GET1^DIQ(100.517,ORRET_","_ORSAVINS_",",11)
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HORQ2   12027     printed  Sep 23, 2025@20:09:27                                                                                                                                                                                                       Page 2
ORQ2      ; SLC/MKB/GSS - Detailed Order Report ;Aug 9, 2021@13:40:01
 +1       ;;3.0;ORDER ENTRY/RESULTS REPORTING;**12,56,75,94,141,213,195,243,282,293,280,346,361,471,453,405**;Dec 17, 1997;Build 211
 +2       ;
 +3       ;
 +4       ;Reference to ^DIC(45.7 supported by IA #519
 +5       ;Reference to OERR^VADPT supported by IA #4325
 +6       ;Reference to CODECS^ICDEX supported by ICR #5747
 +7       ;
DETAIL(ORY,ORIFN) ; -- Returns details of order ORIFN in ORY(#)
 +1        NEW X,X2,I,CNT,ORDIALOG,OR0,OR3,OR6,SEQ,ITEM,PRMT,MULT,FIRST,TITLE,INST,DIWL,DIWR,DIWF,ACTION,VAIN,ORIGVIEW,ORNMSP,ORYT,ORCRACT
 +2       ; OR*3*453 rbd Var needed for ORDER TRANSFERS logic below
           NEW ORTRANS
 +3       ; p 471 added ORCACT to use action if passed in
 +4        SET CNT=0
           SET ORCRACT=+$PIECE(ORIFN,";",2)
           SET ORIFN=+ORIFN
           SET OR0=$GET(^OR(100,ORIFN,0))
           SET OR3=$GET(^(3))
           SET OR6=$GET(^(6))
 +5        SET ORNMSP=$$NMSP^ORCD($PIECE(OR0,U,14))
 +6       ; p 471 if no action, default to CURRENT ACTION..or if not $O(<The action subfile>, -1)
 +7        if 'ORCRACT
               SET ORCRACT=$SELECT(+$PIECE(OR3,U,7):+$PIECE(OR3,U,7),1:+$ORDER(^OR(100,ORIFN,8,":"),-1))
 +8       ;CurrTx
           KILL @ORY,ORYT
           SET ORIGVIEW=1
           DO TEXT^ORQ12(.ORYT,+ORIFN_";"_ORCRACT,80)
 +9       ;Move text to global
           MERGE @ORY=ORYT
 +10       SET I=0
           FOR CNT=1:1
               SET I=$ORDER(ORYT(I))
               if I'>0
                   QUIT 
               if $DATA(IORVON)
                   DO SETVIDEO(I,1,$LENGTH(ORYT(I)),IORVON,IORVOFF)
 +11      ;blank
           SET CNT=CNT+1
           SET @ORY@(CNT)="   "
D1         IF $ORDER(^OR(100,+ORIFN,2,0))
               Begin DoDot:1
 +1                SET CNT=CNT+1
                   SET @ORY@(CNT)="Sub Orders:"
 +2                if $DATA(IOUON)
                       DO SETVIDEO(CNT,1,11,IOUON,IOUOFF)
 +3                NEW IFN
                   SET IFN=0
 +4                FOR 
                       SET IFN=+$ORDER(^OR(100,+ORIFN,2,IFN))
                       if IFN<1
                           QUIT 
                       IF $DATA(^OR(100,IFN,0))
                           DO SUB(IFN)
 +5       ;blank
                   SET CNT=CNT+1
                   SET @ORY@(CNT)="   "
               End DoDot:1
 +6        IF $PIECE(OR3,U,9)
               IF $DATA(^OR(100,+$PIECE(OR3,U,9),0))
                   Begin DoDot:1
 +7                    SET CNT=CNT+1
                       SET @ORY@(CNT)="Parent Order:"
 +8                    if $DATA(IOUON)
                           DO SETVIDEO(CNT,1,12,IOUON,IOUOFF)
 +9                    DO SUB(+$PIECE(OR3,U,9))
 +10      ;blank
                       SET CNT=CNT+1
                       SET @ORY@(CNT)="   "
                   End DoDot:1
 +11      ;Changed - show previous order
           IF $PIECE(OR3,U,11)=1
               IF $PIECE(OR3,U,5)
                   Begin DoDot:1
 +12                   SET CNT=CNT+1
                       SET @ORY@(CNT)="Previous Order:"
 +13      ;prev order original text
                       if $DATA(IOUON)
                           DO SETVIDEO(CNT,1,15,IOUON,IOUOFF)
 +14                   NEW ORZ,I,ORIGVIEW
                       SET ORIGVIEW=2
                       DO TEXT^ORQ12(.ORZ,+$PIECE(OR3,U,5),55)
 +15                   SET CNT=CNT+1
                       SET @ORY@(CNT)="     Order Text:        "_$GET(ORZ(1))
 +16                   SET I=1
                       FOR 
                           SET I=$ORDER(ORZ(I))
                           if I'>0
                               QUIT 
                           SET CNT=CNT+1
                           SET @ORY@(CNT)=$$REPEAT^XLFSTR(" ",24)_$GET(ORZ(I))
                   End DoDot:1
D2         SET CNT=CNT+1
           SET @ORY@(CNT)="Activity:"
 +1        if $DATA(IOUON)
               DO SETVIDEO(CNT,1,9,IOUON,IOUOFF)
 +2        SET DIWL=1
           SET DIWR=64
           SET DIWF="C64"
           SET ORI=0
           KILL ^UTILITY($JOB,"W")
 +3        FOR 
               SET ORI=$ORDER(^OR(100,ORIFN,8,ORI))
               if ORI'>0
                   QUIT 
               SET ACTION=$GET(^(ORI,0))
               DO ACT^ORQ20
 +4       ; RBD OR*3.0*453 Add ORDER TRANSFERS information
 +5        SET ORI=0
           FOR 
               SET ORI=$ORDER(^OR(100,ORIFN,11,ORI))
               if ORI'>0
                   QUIT 
               Begin DoDot:1
 +6                IF ORI=1
                       Begin DoDot:2
 +7                        SET CNT=CNT+1
                           SET @ORY@(CNT)="   "
                           SET CNT=CNT+1
                           SET @ORY@(CNT)="Reassignments (Transfers):"
                       End DoDot:2
 +8                SET ORTRANS=$GET(^OR(100,ORIFN,11,ORI,0))
 +9                SET CNT=CNT+1
                   SET @ORY@(CNT)="Transferred from "_$$USER^ORQ20($PIECE(ORTRANS,U,2))_" to "_$$USER^ORQ20($PIECE(ORTRANS,U,3))
 +10               SET CNT=CNT+1
                   SET @ORY@(CNT)="  by "_$$USER^ORQ20($PIECE(ORTRANS,U,4))_" Effective From "_$$DATE^ORQ20($PIECE(ORTRANS,U))
               End DoDot:1
 +11       IF $DATA(^OR(100,ORIFN,11))
               SET CNT=CNT+1
               SET @ORY@(CNT)="   "
 +12       IF "^1^12^13^"[(U_$PIECE(OR3,U,3)_U)
               IF $LENGTH(OR6)
                   IF $PIECE(ACTION,U,2)'="DC"
                       DO DC^ORQ20
 +13       IF $PIECE(OR3,U,3)=2
               IF $PIECE(OR6,U,6)
                   SET CNT=CNT+1
                   SET @ORY@(CNT)=$$DATE^ORQ20($PIECE(OR6,U,6))_"  Completed"_$SELECT($PIECE(OR6,U,7):" by "_$$USER^ORQ20($PIECE(OR6,U,7)),1:"")
 +14      ;blank
           SET CNT=CNT+1
           SET @ORY@(CNT)="   "
D3         SET CNT=CNT+1
           SET @ORY@(CNT)="Current Data:"
 +1        if $DATA(IOUON)
               DO SETVIDEO(CNT,1,13,IOUON,IOUOFF)
 +2        DO VA
           IF $GET(VAIN(2))
               SET CNT=CNT+1
               SET @ORY@(CNT)="Current Primary Provider:     "_$PIECE(VAIN(2),"^",2)
 +3        IF $GET(VAIN(11))
               SET CNT=CNT+1
               SET @ORY@(CNT)="Current Attending Physician:  "_$PIECE(VAIN(11),"^",2)
 +4        SET CNT=CNT+1
           SET @ORY@(CNT)="Treating Specialty:           "_$PIECE($GET(^DIC(45.7,+$PIECE(OR0,U,13),0)),U)
 +5        SET CNT=CNT+1
           SET @ORY@(CNT)="Ordering Location:            "_$PIECE($GET(^SC(+$PIECE(OR0,U,10),0)),U)
 +6        SET CNT=CNT+1
           SET @ORY@(CNT)="Start Date/Time:              "_$SELECT($PIECE(OR0,U,8):$$DATE^ORQ20($PIECE(OR0,U,8)),1:"")
 +7        IF $PIECE(OR3,U,5)
               IF $PIECE(OR3,U,11)=2
                   SET X=$$ORIG(ORIFN)
                   SET @ORY@(CNT)=@ORY@(CNT)_" (originally "_$$DATE^ORQ20(X)_")"
 +8        SET CNT=CNT+1
           SET @ORY@(CNT)="Stop Date/Time:               "_$SELECT($PIECE(OR0,U,9):$$DATE^ORQ20($PIECE(OR0,U,9)),1:"")
 +9        IF $PIECE(OR3,U,3)=1
               IF $PIECE(OR6,U,6)
                   SET @ORY@(CNT)=@ORY@(CNT)_"  (expired "_$$DATE^ORQ20($PIECE(OR6,U,6))_")"
 +10       SET CNT=CNT+1
           SET @ORY@(CNT)="Current Status:               "_$SELECT($DATA(^ORD(100.01,+$PIECE(OR3,U,3),0)):$PIECE(^(0),"^"),1:"-")
 +11       IF $$GET^XPAR("ALL","ORPF SHOW STATUS DESCRIPTION",1,"I")
               IF $PIECE(OR3,U,3)
                   IF $DATA(^ORD(100.01,$PIECE(OR3,U,3),0))
                       NEW J
                       SET J=0
                       FOR 
                           SET J=$ORDER(^ORD(100.01,$PIECE(OR3,U,3),1,J))
                           if J<1
                               QUIT 
                           SET CNT=CNT+1
                           SET @ORY@(CNT)="  "_^(J,0)
 +12       SET CNT=CNT+1
           SET @ORY@(CNT)="Order #"_ORIFN
 +13      ;blank
           SET CNT=CNT+1
           SET @ORY@(CNT)="   "
D4         SET CNT=CNT+1
           SET @ORY@(CNT)="Order:"
           if $DATA(IOUON)
               DO SETVIDEO(CNT,1,6,IOUON,IOUOFF)
 +1        IF '$ORDER(^OR(100,ORIFN,4.5,0))
               IF ORNMSP="RA"
                   DO RAD^ORQ21("")
                   QUIT 
 +2       ; 2.5 order
           SET ORDIALOG=$PIECE(OR0,U,5)
           if $PIECE(ORDIALOG,";",2)="ORD(101,"
               QUIT 
 +3        DO GETDLG^ORCD(+ORDIALOG)
           DO GETORDER^ORCD(ORIFN)
 +4        IF ORNMSP="GMRC"
               DO GMRCXTRA
 +5        SET DIWL=1
           SET DIWR=50
           SET DIWF="C50"
 +6        SET SEQ=0
           FOR 
               SET SEQ=$ORDER(^ORD(101.41,+ORDIALOG,10,"B",SEQ))
               if SEQ'>0
                   QUIT 
               SET DA=0
               FOR 
                   SET DA=$ORDER(^ORD(101.41,+ORDIALOG,10,"B",SEQ,DA))
                   if 'DA
                       QUIT 
                   Begin DoDot:1
 +7       ; child
                       SET ITEM=$GET(^ORD(101.41,+ORDIALOG,10,DA,0))
                       if $PIECE(ITEM,U,11)
                           QUIT 
 +8       ;hide
                       SET PRMT=$PIECE(ITEM,U,2)
                       SET MULT=$PIECE(ITEM,U,7)
                       if $PIECE(ITEM,U,9)["*"
                           QUIT 
 +9       ; no values
                       SET FIRST=$ORDER(ORDIALOG(PRMT,0))
                       if 'FIRST
                           QUIT 
 +10                   SET TITLE=$SELECT(MULT&$LENGTH($GET(ORDIALOG(PRMT,"TTL"))):ORDIALOG(PRMT,"TTL"),1:ORDIALOG(PRMT,"A"))
 +11                   SET TITLE=TITLE_$$REPEAT^XLFSTR(" ",30-$LENGTH(TITLE))
 +12                   SET INST=0
                       FOR 
                           SET INST=$ORDER(ORDIALOG(PRMT,INST))
                           if INST'>0
                               QUIT 
                           Begin DoDot:2
 +13                           IF $EXTRACT(ORDIALOG(PRMT,0))="W"
                                   DO WP
                                   QUIT 
 +14                           KILL ^UTILITY($JOB,"W")
                               SET X=$$EXT^ORCD(PRMT,INST)
                               IF TITLE["Infusion Rate"&(X'="")&(X'["ml/hr")
                                   SET TITLE="Infuse Over Time:"
                                   SET TITLE=TITLE_$$REPEAT^XLFSTR(" ",30-$LENGTH(TITLE))
 +15                           DO ^DIWP
 +16                           if $DATA(^ORD(101.41,+ORDIALOG,10,"DAD",PRMT))
                                   DO CHILDREN(PRMT)
 +17                           SET I=0
                               FOR 
                                   SET I=$ORDER(^UTILITY($JOB,"W",DIWL,I))
                                   if I'>0
                                       QUIT 
                                   SET CNT=CNT+1
                                   SET @ORY@(CNT)=$SELECT((INST=FIRST)&(I=1):TITLE,1:$$REPEAT^XLFSTR(" ",30))_^(I,0)
                           End DoDot:2
                   End DoDot:1
 +18       IF ORNMSP="GMRC"
               IF $GET(^OR(100,ORIFN,4))
                   SET CNT=CNT+1
                   SET @ORY@(CNT)="Consult No.:                  "_+^(4)
 +19      ;blank
           SET CNT=CNT+1
           SET @ORY@(CNT)="   "
 +20      ;add'l data
           if ORNMSP="RA"
               DO RAD^ORQ21(1)
           if ORNMSP="PS"
               DO MED^ORQ21
 +21      ;call for CIDC data
           DO BA^ORQ21
D5         KILL ^TMP($JOB,"OCDATA")
           IF $$OCAPI^ORCHECK(+ORIFN,"OCDATA")
               Begin DoDot:1
 +1                NEW CK,OK,X0,X,CDL,I,ACK,ALLGYDRG,HDR
                   SET HDR=0
 +2                if $DATA(IOUON)
                       DO SETVIDEO(CNT,1,13,IOUON,IOUOFF)
 +3                SET ACK=0
 +4       ;405
                   DO ALLERGY
 +5       ;405
                   if $DATA(OK)
                       SET OK=""
 +6                SET CK=0
                   FOR 
                       SET CK=$ORDER(^TMP($JOB,"OCDATA",CK))
                       if CK'>0
                           QUIT 
                       Begin DoDot:2
 +7       ;405
                           if $DATA(ALLGYDRG(CK))
                               QUIT 
 +8                        if HDR=0
                               SET CNT=CNT+1
                               SET @ORY@(CNT)=" "
                               SET CNT=CNT+1
                               SET @ORY@(CNT)="Order Checks:"
                               SET HDR=1
 +9                        SET X0=^TMP($JOB,"OCDATA",CK,"OC NUMBER")_U_^TMP($JOB,"OCDATA",CK,"OC LEVEL")_U_U_^TMP($JOB,"OCDATA",CK,"OR REASON")_U_^TMP($JOB,"OCDATA",CK,"OR PROVIDER")_U_^TMP($JOB,"OCDATA",CK,"OR DT")
 +10                       SET X=^TMP($JOB,"OCDATA",CK,"OC TEXT",1,0)
 +11                       SET CDL=$$CDL($PIECE(X0,U,2))
                           IF $PIECE(X0,U,6)
                               IF '$DATA(OK)
                                   SET OK=$PIECE(X0,U,4,6)
 +12                       IF $LENGTH(X)'>68
                               SET CNT=CNT+1
                               SET @ORY@(CNT)=CDL_X
                               DO XTRA
                               QUIT 
 +13                       SET DIWL=1
                           SET DIWR=68
                           SET DIWF="C68"
                           KILL ^UTILITY($JOB,"W")
                           DO ^DIWP
 +14                       SET I=0
                           FOR 
                               SET I=$ORDER(^UTILITY($JOB,"W",DIWL,I))
                               if I'>0
                                   QUIT 
                               SET CNT=CNT+1
                               SET @ORY@(CNT)=CDL_^(I,0)
                               SET CDL="            "
 +15                       DO XTRA
                       End DoDot:2
 +16               KILL ^TMP($JOB,"OCDATA")
 +17      ;405 quit if only allergy-drug interactions
                   if (HDR=0)
                       QUIT 
 +18               if '$LENGTH($GET(OK))
                       QUIT 
                   SET CNT=CNT+1
                   SET @ORY@(CNT)="Override:   "_$SELECT($PIECE(OK,U,2):$$USER^ORQ20($PIECE(OK,U,2))_" on ",1:"")_$$DATE^ORQ20($PIECE(OK,U,3))
 +19               IF $LENGTH($PIECE(OK,U))'>68
                       SET CNT=CNT+1
                       SET @ORY@(CNT)="            "_$PIECE(OK,U)
                       QUIT 
 +20               SET DIWL=1
                   SET DIWR=68
                   SET DIWF="C68"
                   SET X=$PIECE(OK,U)
                   KILL ^UTILITY($JOB,"W")
                   DO ^DIWP
 +21               SET I=0
                   FOR 
                       SET I=$ORDER(^UTILITY($JOB,"W",DIWL,I))
                       if I'>0
                           QUIT 
                       SET CNT=CNT+1
                       SET @ORY@(CNT)="            "_^(I,0)
               End DoDot:1
 +22       KILL ^TMP("ORWORD",$JOB),^UTILITY($JOB,"W"),ALLGYDRG
 +23       QUIT 
 +24      ;
XTRA      ;
 +1        IF $ORDER(^TMP($JOB,"OCDATA",CK,"OC TEXT",1))
               NEW ORXT
               SET ORXT=1
               FOR 
                   SET ORXT=$ORDER(^TMP($JOB,"OCDATA",CK,"OC TEXT",ORXT))
                   if 'ORXT
                       QUIT 
                   Begin DoDot:1
 +2                    SET X=^TMP($JOB,"OCDATA",CK,"OC TEXT",ORXT,0)
                       SET CDL="              "
 +3                    IF $LENGTH(X)'>68
                           SET CNT=CNT+1
                           SET @ORY@(CNT)=CDL_X
                           QUIT 
 +4                    SET DIWL=1
                       SET DIWR=68
                       SET DIWF="C68"
                       KILL ^UTILITY($JOB,"W")
                       DO ^DIWP
 +5                    SET I=0
                       FOR 
                           SET I=$ORDER(^UTILITY($JOB,"W",DIWL,I))
                           if I'>0
                               QUIT 
                           SET CNT=CNT+1
                           SET @ORY@(CNT)=CDL_^(I,0)
                           SET CDL="              "
                   End DoDot:1
 +6        IF $ORDER(^TMP($JOB,"OCDATA",CK,"OC TEXT",1))
               SET X=""
               SET CNT=CNT+1
               SET @ORY@(CNT)="              "
 +7        QUIT 
 +8       ;
SUB(IFN)  ; -- add suborder or parent
 +1        NEW ORCY,STS,STRT,IG,A,STOP,SCHED
           DO TEXT^ORQ12(.ORCY,IFN,58)
 +2        SET STS=$GET(^ORD(100.01,+$PIECE($GET(^OR(100,IFN,3)),U,3),.1))
 +3        SET A=^OR(100,IFN,0)
           SET STRT=$PIECE(A,U,8)
           SET STOP=$PIECE(A,U,9)
 +4        SET SCHED=$$VALUE^ORX8(IFN,"SCHEDULE",1,"E")
 +5        if STRT'=""
               SET STRT=$$DATE^ORQ20(STRT)
           IF ORNMSP="LR"
               if STOP]""
                   SET STOP=$$DATE^ORQ20(STOP)
 +6        SET IG=0
           FOR 
               SET IG=$ORDER(ORCY(IG))
               if IG<1
                   QUIT 
               SET CNT=CNT+1
               SET @ORY@(CNT)=$JUSTIFY(STS,4)_" "_ORCY(IG)_" "_STRT
               SET (STS,STRT)=" "
 +7        IF ORNMSP="LR"
               IF STOP]""
                   SET CNT=CNT+1
                   SET @ORY@(CNT)=$JUSTIFY("How often: ",16)_SCHED_"   Stops:  "_STOP
 +8        QUIT 
 +9       ;
WP        ; -- add word-processing
 +1        NEW WP,ORI,X
           MERGE WP=@ORDIALOG(PRMT,INST)
 +2        SET CNT=CNT+1
           SET @ORY@(CNT)=TITLE
 +3        SET ORI=0
           FOR 
               SET ORI=$ORDER(WP(ORI))
               if ORI'>0
                   QUIT 
               SET X=WP(ORI,0)
               if X'=""
                   SET CNT=CNT+1
                   SET @ORY@(CNT)="  "_X
 +4        QUIT 
 +5       ;
CHILDREN(PARENT) ; -- add children
 +1        NEW SEQ,DA,ITM,PRMT,TYPE,X
 +2        SET SEQ=0
           FOR 
               SET SEQ=$ORDER(^ORD(101.41,+ORDIALOG,10,"DAD",PARENT,SEQ))
               if SEQ'>0
                   QUIT 
               SET DA=$ORDER(^(SEQ,0))
               Begin DoDot:1
 +3                SET ITM=$GET(^ORD(101.41,+ORDIALOG,10,DA,0))
                   SET PRMT=$PIECE(ITM,U,2)
 +4       ;no value or hide
                   if $GET(ORDIALOG(PRMT,INST))=""
                       QUIT 
                   if $PIECE(ITM,U,9)["*"
                       QUIT 
 +5                SET TYPE=$EXTRACT(ORDIALOG(PRMT,0))
                   if TYPE="W"
                       DO WP
 +6                IF TYPE'="W"
                       Begin DoDot:2
 +7                        SET X=$$EXT^ORCD(PRMT,INST)
 +8                        IF $LENGTH(X,"|")=2
                               SET X=$$REPLACE^ORHLESC(X,"|","||")
 +9                        DO ^DIWP
                       End DoDot:2
               End DoDot:1
 +10       QUIT 
 +11      ;
SETVIDEO(LINE,COL,WIDTH,ON,OFF) ; -- set video attributes
 +1        SET ORY("VIDEO",LINE,COL,WIDTH)=ON
 +2        SET ORY("VIDEO",LINE,COL+WIDTH,0)=OFF
 +3        QUIT 
 +4       ;
VA        ; -- Call VADPT
 +1        NEW ORY,DFN,Y
           SET DFN=+$PIECE(OR0,"^",2)
           DO OERR^VADPT
 +2        QUIT 
 +3       ;
CDL(X)    ; -- Returns Clinical Danger Level X
 +1        NEW Y
           SET Y=$SELECT(X=1:"HIGH:",X=2:"MODERATE:",X=3:"LOW:",1:"NONE:")
 +2        SET Y=$EXTRACT(Y_"        ",1,12)
 +3        QUIT Y
 +4       ;
ORIG(IFN) ; -- Return original start date of [renewal] order
 +1        NEW I,Y,X3,DONE
 +2        SET I=IFN
           SET Y=$PIECE($GET(^OR(100,IFN,0)),U,8)
           SET DONE=0
 +3        FOR 
               SET X3=$GET(^OR(100,I,3))
               Begin DoDot:1
 +4       ;loop
                   IF $PIECE(X3,U,11)=2
                       IF $PIECE(X3,U,5)
                           SET I=$PIECE(X3,U,5)
                           QUIT 
 +5                SET Y=$PIECE($GET(^OR(100,I,0)),U,8)
                   SET DONE=1
               End DoDot:1
               if DONE
                   QUIT 
 +6        QUIT Y
GMRCXTRA  ; expects ORDIALOG to be populated and ORIFN to be present
 +1        NEW ORGMROUT,ORDGDA,ORGMRICD,ORCODE,ORISCODE,ORCODSYS
 +2        IF '$GET(^OR(100,ORIFN,4))
               Begin DoDot:1
 +3                SET ORISCODE=ORDIALOG("B","CODE")
                   SET ORISCODE=$PIECE(ORISCODE,U,2)
 +4                IF +$GET(ORISCODE)>0
                       Begin DoDot:2
 +5                        if '$DATA(ORDIALOG(ORISCODE,1))
                               QUIT 
 +6                        SET ORCODE=ORDIALOG(ORISCODE,1)
 +7                        SET ORCODSYS=$$CODECS^ICDEX(ORCODE,"80")
 +8                        SET ORGMROUT=$PIECE($GET(ORCODSYS),U,2)
                       End DoDot:2
               End DoDot:1
 +9        IF $GET(^OR(100,ORIFN,4))
               Begin DoDot:1
 +10               SET ORGMROUT="ICD-9-CM"
 +11               if '$DATA(^GMR(123,+^OR(100,+ORIFN,4),30.1))
                       QUIT 
 +12               SET ORGMRICD=^GMR(123,+^OR(100,+ORIFN,4),30.1)
 +13               IF $PIECE(ORGMRICD,U,3)="10D"
                       SET ORGMROUT="ICD-10-CM"
               End DoDot:1
 +14       SET ORDGDA=$GET(ORDIALOG("B","CODE"))
 +15       if '$PIECE(ORDGDA,U,2)
               QUIT 
 +16       SET ORDGDA=$PIECE(ORDGDA,U,2)
 +17       if '$DATA(ORDIALOG(ORDGDA,1))
               QUIT 
 +18       SET ORDIALOG(ORDGDA,1)="("_ORGMROUT_" "_ORDIALOG(ORDGDA,1)_")"
 +19       QUIT 
ALLERGY   ;separate the ALLERGY-DRUG INTERACTION Order Checks (405)
 +1        NEW ORRET,ORINSTAN,ORSAVINS
 +2        SET ORRET=1
 +3        SET (ACK,CK)=0
           FOR 
               SET CK=$ORDER(^TMP($JOB,"OCDATA",CK))
               if CK'>0
                   QUIT 
               Begin DoDot:1
 +4                IF $GET(^TMP($JOB,"OCDATA",CK,"OC NUMBER"))'=3
                       QUIT 
 +5                SET ALLGYDRG(CK)=" "
 +6                IF ACK=0
                       SET CNT=CNT+1
                       SET @ORY@(CNT)=" "
                       SET CNT=CNT+1
                       SET @ORY@(CNT)="Allergy Order Checks:"
                       SET CNT=CNT+1
                       SET ACK=1
 +7                SET X0=^TMP($JOB,"OCDATA",CK,"OC NUMBER")_U_^TMP($JOB,"OCDATA",CK,"OC LEVEL")_U_U_^TMP($JOB,"OCDATA",CK,"OR REASON")_U_^TMP($JOB,"OCDATA",CK,"OR PROVIDER")_U_^TMP($JOB,"OCDATA",CK,"OR DT")
 +8                SET X=^TMP($JOB,"OCDATA",CK,"OC TEXT",1,0)
 +9                SET CDL=$$CDL($PIECE(X0,U,2))
                   IF $PIECE(X0,U,6)
                       IF '$DATA(OK)
                           SET OK=$PIECE(X0,U,4,6)
 +10               IF $LENGTH(X)'>68
                       SET CNT=CNT+1
                       SET @ORY@(CNT)=CDL_X
                       DO XTRA
                       QUIT 
 +11               SET DIWL=1
                   SET DIWR=68
                   SET DIWF="C68"
                   KILL ^UTILITY($JOB,"W")
                   DO ^DIWP
 +12               SET I=0
                   FOR 
                       SET I=$ORDER(^UTILITY($JOB,"W",DIWL,I))
                       if I'>0
                           QUIT 
                       SET CNT=CNT+1
                       SET @ORY@(CNT)=CDL_^UTILITY($JOB,"W",DIWL,I,0)
                       SET CDL="            "
 +13               SET ORINSTAN=$GET(^TMP($JOB,"OCDATA",CK,"OC INSTANCE"))
 +14               IF ORINSTAN>0
                       Begin DoDot:2
 +15                       IF $$GET1^DIQ(100.517,ORRET_","_ORINSTAN_",",11)'=""
                               Begin DoDot:3
 +16                               if '$DATA(ORSAVINS)
                                       SET ORSAVINS=ORINSTAN
                               End DoDot:3
                       End DoDot:2
 +17               DO XTRA
               End DoDot:1
 +18       IF ACK=1
               Begin DoDot:1
 +19               if '$LENGTH($GET(OK))
                       QUIT 
                   SET CNT=CNT+1
                   SET @ORY@(CNT)="Override:   "_$SELECT($PIECE(OK,U,2):$$USER^ORQ20($PIECE(OK,U,2))_" on ",1:"")_$$DATE^ORQ20($PIECE(OK,U,3))
 +20               IF $LENGTH($PIECE(OK,U))'>68
                       SET CNT=CNT+1
                       SET @ORY@(CNT)="            "_$PIECE(OK,U)
                       SET CNT=CNT+1
                       QUIT 
 +21               SET DIWL=1
                   SET DIWR=68
                   SET DIWF="C68"
                   SET X=$PIECE(OK,U)
                   KILL ^UTILITY($JOB,"W")
                   DO ^DIWP
 +22               SET I=0
                   FOR 
                       SET I=$ORDER(^UTILITY($JOB,"W",DIWL,I))
                       if I'>0
                           QUIT 
                       SET CNT=CNT+1
                       SET @ORY@(CNT)="            "_^UTILITY($JOB,"W",DIWL,I,0)
               End DoDot:1
 +23       IF $DATA(ORSAVINS)
               Begin DoDot:1
 +24               SET CNT=CNT+1
                   SET @ORY@(CNT)="            "
 +25               SET CNT=CNT+1
                   SET @ORY@(CNT)="Remote Comment: "_$$GET1^DIQ(100.517,ORRET_","_ORSAVINS_",",11)
               End DoDot:1
 +26       QUIT