ORCXPND1 ; SLC/MKB - Expanded Display cont ;May 3, 2021@21:00
 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**26,67,75,89,92,94,148,159,188,172,215,243,280,340,306,350,423,514,527,539,513,585**;Dec 17, 1997;Build 2
 ;
 ; External References
 ;   DBIA  2387  ^LAB(60
 ;   DBIA  3420  ^DPT(  file #2
 ;   DBIA 10035  ^DPT(  file #2
 ;   DBIA 10037  EN^DGRPD
 ;   DBIA   700  DIS^DGRPDB
 ;   DBIA  2926  RT^GMRCGUIA
 ;   DBIA  2925  DT^GMRCSLM2                     ^TMP("GMRCR"
 ;   DBIA  2503  RR^LR7OR1                       ^TMP("LRRR"
 ;   DBIA  2951  EN1^LR7OSBR                     ^TMP("LRC"
 ;   DBIA  2952  EN^LR7OSMZ0
 ;   DBIA  2400  OEL^PSOORRL                     ^TMP("PS"
 ;   DBIA  2877  EN3^RAO7PC3
 ;   DBIA  2877  EN30^RAO7PC3
 ;   DBIA  1252  $$OUTPTPR^SDUTL3
 ;   DBIA  1252  $$OUTPTTM^SDUTL3
 ;   DBIA  1252  $$OUTPTAP^SDUTL3
 ;   DBIA  2832  RPC^TIUSRV
 ;   DBIA 10061  DEM^VADPT
 ;   DBIA 10061  KVAR^VADPT
 ;   DBIA 10061  OAD^VADPT
 ;   DBIA 10103  $$FMTE^XLFDT
 ;   DBIA  4408  DISP^DGIBDSP
 ;   DBIA  5697  START^SCMCMHTC
 ;   DBIA  7104  EXT^DGENU
 ;   DBIA  4192  EXTCAT^DGENA4 and CATEGORY^DGENA4
 ;   DBIA  3812  FINDCUR^DGENA and GET^DGENA
 ;   DBIA  3880  CPRS^VBECA3B
 ;   DBIA  7203  EN^VBECRPT
 ;   DBIA  7249  GET^VAFCREL
 ;
COVER ; -- Cover Sheet
 N PKG S PKG=$P($G(^TMP("OR",$J,ORTAB,"IDX",NUM)),U,4)
 D ALLERGY^ORCXPND2:PKG="GMRA",NOTES:PKG="TIU"
 Q
NOTES ; -- Progress Notes
 N I,ORY,DATE,AUTHOR,PTLOC,SUBJ K ^TMP("TIUAUDIT",$J)
 D RPC^TIUSRV(.ORY,ID)
 S I=0 F  S I=$O(@ORY@(I)) Q:I'>0  S LCNT=LCNT+1,^TMP("ORXPND",$J,LCNT,0)=$G(@ORY@(I,0))
 K @ORY
 Q
PROBLEMS ; -- Problem List
 D PL^ORCXPND4
 Q
MEDS ; -- Pharmacy
 ;N NODE,ORIFN
 K ^TMP("PS",$J)
 D OEL^PSOORRL(+ORVP,ID) ;S NODE=$G(^TMP("PS",$J,0)),ORIFN=+$P(NODE,U,11)
 S ID=+$P($G(^TMP("PS",$J,0)),U,11) D ORDERS  ;DBIA 2400
 ;D @($S($P($G(^OR(100,ORIFN,0)),U,11)=$O(^ORD(100.98,"B","IV RX",0)):"IV",1:"DRUG")_"^ORCXPND2")
 K ^TMP("PS",$J)
 Q
LABS ; -- Laboratory [RESULTS ONLY for ID=OE order #]
 N ORIFN,X,SUB,TEST,NAME,SS,IDE,IVDT,TST,CCNT,ORCY,IG,TCNT,XT
 K ^TMP("LRRR",$J)  ;DBIA 2503
 S ORIFN=+ID,IDE=$G(^OR(100,+ID,4)) Q:'$L(IDE)  ; OE# -> Lab#
 I $G(DFN),$P(IDE,";",4)?1(1"SP",1"CY",1"EM") N XQADATA S XQADATA=$P(IDE,";",4)_U_U_$P(IDE,";",5) D AP^ORCXPND3 Q  ;coversheet and orders result display
 I $P(IDE,";",5) D RR^LR7OR1(+ORVP,,9999999-$P(IDE,";",5),9999999-$P(IDE,";",5),$P(IDE,";",4)) ;lookup on file 63 first
 I '$P(IDE,";",5),+IDE D RR^LR7OR1(+ORVP,IDE) I '$D(^TMP("LRRR",$J,+ORVP)) S $P(IDE,";",1,3)=";;"
 K ORCY D TEXT^ORQ12(.ORCY,ORIFN,80)
 S IG=0 F  S IG=$O(ORCY(IG)) Q:IG<1  S X=ORCY(IG) D ITEM^ORCXPND(X)
 D BLANK^ORCXPND I '$D(^TMP("LRRR",$J,+ORVP)) S LCNT=LCNT+1,^TMP("ORXPND",$J,LCNT,0)="No data available." Q
 M TEST=^TMP("LRRR",$J,+ORVP) S CCNT=0,SS=""
 F  S SS=$O(TEST(SS)) Q:SS=""  S IVDT=0 F  S IVDT=$O(TEST(SS,IVDT)) Q:'IVDT  D
 . I SS="BB" D
 .. I $$GET^XPAR("DIV^SYS^PKG","OR VBECS ON",1,"Q"),$L($T(EN^ORWLR1)),$L($T(CPRS^VBECA3B)) D  Q  ;Transition to VBEC's interface
 ... K ^TMP("ORLRC",$J)
 ... ;D EN^ORWLR1(DFN) ;RLM
 ... D EN^VBECRPT ;RLM
 ... I '$O(^TMP("ORLRC",$J,0)) S ^TMP("ORLRC",$J,1,0)="",^TMP("ORLRC",$J,2,0)="No Blood Bank report available..."
 ... N I S I=0 F  S I=$O(^TMP("ORLRC",$J,I)) Q:I<1  S X=^(I,0),LCNT=LCNT+1,^TMP("ORXPND",$J,LCNT,0)=X
 ... K ^TMP("ORLRC",$J)
 .. K ^TMP("LRC",$J) D EN1^LR7OSBR(+ORVP) Q:'$D(^TMP("LRC",$J))  D  Q  ;DBIA 2951
 ... N I S I=0 F  S I=$O(^TMP("LRC",$J,I)) Q:I<1  S X=^(I,0),LCNT=LCNT+1,^TMP("ORXPND",$J,LCNT,0)=X
 ... K ^TMP("LRC",$J)
 . I SS="MI" K ^TMP("LRC",$J) D EN^LR7OSMZ0(+ORVP) Q:'$D(^TMP("LRC",$J))  D  Q
 .. N I S I=0 F  S I=$O(^TMP("LRC",$J,I)) Q:I<1  S X=^(I,0),LCNT=LCNT+1,^TMP("ORXPND",$J,LCNT,0)=X
 .. K ^TMP("LRC",$J)
 . I SS="CH" D  Q
 .. S (TCNT,TST)=0 F  S TST=$O(TEST(SS,IVDT,TST)) Q:TST=""  S CCNT=0,TCNT=TCNT+1 D
 ... I TCNT=1 D
 .... S LINE="Collection time: "_$$FMTE^XLFDT(9999999-IVDT,"M")
 .... D SETLINE(LINE,.LCNT)
 .... D BLANK^ORCXPND
 .... S LINE=$$S(1,CCNT," ")_$$S(2,CCNT,"Test Name")_$$S(38,CCNT,"Result")_$$S(48,CCNT,"Units")_$$S(64,CCNT,"Range")
 .... D SETLINE(LINE,.LCNT)
 .... S CCNT=0,LINE=$$S(1,CCNT," ")_$$S(2,CCNT,"---------")_$$S(38,CCNT,"------")_$$S(48,CCNT,"-----")_$$S(64,CCNT,"-----")
 .... D SETLINE(LINE,.LCNT)
 .... D:$D(IOUON) SETVIDEO^ORCXPND(LCNT,1,70,IOUON,IOUOFF)
 ... I TST S XT=TEST(SS,IVDT,TST),CCNT=0 I +XT D
 .... S NAME=$S($L($P(^LAB(60,+XT,0),U))>25:$S($L($P($G(^(.1)),U)):$P(^(.1),U),1:$E($P(^(0),U),1,25)),1:$E($P(^(0),U),1,25))
 .... ;OR*3.0*585: Adjusted spacing in line below - $$S(24... instead of $$S(25...
 .... ;            and add " " before $$S(31
 .... S LINE=$$S(1,CCNT,NAME)_$$S(24,CCNT,$J($P(XT,U,2),20))_" "_$$S(31,CCNT,$S($L($P(XT,U,3)):$P(XT,U,3),1:""))_$$S(48,CCNT,$P(XT,U,4))_$$S(58,CCNT,$J($P(XT,U,5),15))
 .... D SETLINE(LINE,.LCNT)
 .... I $P(XT,U,20) S ^TMP("ORPLS",$J,$P(XT,U,20))=""
 .... I $L($P(XT,U,3)),$D(IOINHI) D SETVIDEO^ORCXPND(LCNT,26,8,IOINHI,IOINORM)
 .... I $P(XT,U,3)["*",$D(IOBON),$D(IOINHI) D SETVIDEO^ORCXPND(LCNT,26,8,IOBON_IOINHI,IOBOFF_IOINORM)
 ... I TST="N" S LINE=" Comments: " D
 .... D SETLINE(LINE,.LCNT)
 .... N CMT S CMT=0 F  S CMT=$O(TEST(SS,IVDT,"N",CMT)) Q:'CMT  S LINE=" "_TEST(SS,IVDT,"N",CMT) D SETLINE(LINE,.LCNT)
 I $L($O(^TMP("ORPLS",$J,""))) D SETLINE(" ",.LCNT),SETLINE(" ",.LCNT),SETLINE("===============================================================================",.LCNT),PLS
 D SETLINE(" ",.LCNT)
 K ^TMP("LRRR",$J)
 Q
 ;
PLS ; List performing laboratories
 N LINE,ORPLS,X
 D SETLINE("Performing Lab Sites",.LCNT)
 S ORPLS=0
 F  S ORPLS=$O(^TMP("ORPLS",$J,ORPLS)) Q:ORPLS<1  D
 . S LINE=$$LJ^XLFSTR("["_ORPLS_"] ",8)_$$NAME^XUAF4(ORPLS)
 . D SETLINE(LINE,.LCNT)
 . S X=$$PADD^XUAF4(ORPLS)
 . S LINE=$$REPEAT^XLFSTR(" ",8)_$P(X,U)_" "_$P(X,U,2)_", "_$P(X,U,3)_" "_$P(X,U,4)
 . D SETLINE(LINE,.LCNT)
 D SETLINE("===============================================================================",.LCNT)
 K ^TMP("ORPLS",$J)
 Q
 ;
SETLINE(LINE,CNT) ;
 S CNT=CNT+1,^TMP("ORXPND",$J,CNT,0)=LINE
 Q
 ;
DELAY ; -- Delayed Orders
NEW ; -- New Orders
ORDERS ; -- Orders
 I '$G(ORESULTS) D ORDERS^ORCXPND2 Q
 ; -- Results Display (Add more packages as available)
 N PKG,TAB,ORIFN
 S PKG=+$P($G(^OR(100,+ID,0)),"^",14),PKG=$$NMSP^ORCD(PKG)
 S TAB=$S(PKG="LR":"LABS",PKG="GMRC":"CONSULTS",PKG="RA":"XRAYS",1:"")
 I '$L(TAB)!(ID'>0) D  Q  ; no display available
 . N ORY,I D TEXT^ORQ12(.ORY,+ID,80)
 . S I=0 F  S I=$O(ORY(I)) Q:I'>0  D ITEM^ORCXPND(ORY(I))
 . D BLANK^ORCXPND
 . S LCNT=LCNT+1,^TMP("ORXPND",$J,LCNT,0)="There are no results to report."
 I $O(^OR(100,+ID,2,0)) S ORIFN=+ID,ID=0 F  S ID=$O(^OR(100,ORIFN,2,ID)) Q:ID<1  I $D(^OR(100,ID,0)) D @TAB
 I '$O(^OR(100,+ID,2,0)) D @TAB
 Q
REPORTS ; -- Patient Profiles
 D EN^ORCXPNDR ; Reports
 Q
CONSULTS ; -- Consults
 N I,X,SUB,ORTX ;,VALMAR
 I $G(ORTAB)="CONSULTS" S X=$P($G(^TMP("OR",$J,ORTAB,"IDX",NUM)),U,4)
 E  D TEXT^ORQ12(.ORTX,+ID) S X=ORTX(1),ID=+$G(^OR(100,+ID,4)) ; OE->GMRC order#
 D ITEM^ORCXPND(X),BLANK^ORCXPND
 I ID'>0 S LCNT=LCNT+1,^TMP("ORXPND",$J,LCNT,0)="No data available." Q
 I '$G(ORESULTS) D  ;DT action
 . S LCNT=LCNT+1,^TMP("ORXPND",$J,LCNT,0)="Consult No.:           "_ID
 . N GMRCOER S GMRCOER=2 D DT^GMRCSLM2(ID) S SUB="DT"  ;DBIA 2925
 I $G(ORESULTS) D RT^GMRCGUIA(ID,"^TMP(""GMRCR"",$J,""RT"")") S SUB="RT"
 S I=0 F  S I=$O(^TMP("GMRCR",$J,SUB,I)) Q:I'>0  S X=$G(^(I,0)),LCNT=LCNT+1,^TMP("ORXPND",$J,LCNT,0)=X  ;DBIA 2925
 K ^TMP("GMRCR",$J)
 Q
XRAYS ; -- Radiology
 I '$G(ORESULTS) S ID=+ORVP_U_$TR(ID,"-","^") D EN3^RAO7PC3(ID)
 I $G(ORESULTS) S ID=+$G(^OR(100,+ID,4)) D EN30^RAO7PC3(ID)
 N CASE,PROC,PSET S PSET=$D(^TMP($J,"RAE3",+ORVP,"PRINT_SET"))
 S CASE=0 F  S CASE=$O(^TMP($J,"RAE3",+ORVP,CASE)) Q:CASE'>0  D
 . I PSET S PROC=$O(^TMP($J,"RAE3",+ORVP,CASE,"")) D ITEM^ORCXPND(PROC) Q
 . S PROC="" F  S PROC=$O(^TMP($J,"RAE3",+ORVP,CASE,PROC)) Q:PROC=""  D ITEM^ORCXPND(PROC),BLANK^ORCXPND,XRPT,BLANK^ORCXPND
 I PSET S CASE=$O(^TMP($J,"RAE3",+ORVP,0)),PROC=$O(^(CASE,"")) D BLANK^ORCXPND,XRPT,BLANK^ORCXPND ;printset=list all procs, then one report
 K ^TMP($J,"RAE3",+ORVP),^UTILITY($J,"W")
 S VALM("RM")=81
 Q
 ;
XRPT ; -- Body of Report for CASE, PROC
 N ORD,X,I
 S ORD=$S($L($G(^TMP($J,"RAE3",+ORVP,"ORD"))):^("ORD"),$L($G(^("ORD",CASE))):^(CASE),1:"") I $L(ORD),ORD'=PROC S LCNT=LCNT+1,^TMP("ORXPND",$J,LCNT,0)="Proc Ord: "_ORD
 S I=1 F  S I=$O(^TMP($J,"RAE3",+ORVP,CASE,PROC,I)) Q:I'>0  S X=^(I),LCNT=LCNT+1,^TMP("ORXPND",$J,LCNT,0)=X ;Skip pt ID on line 1
 Q
 ;
SUMMRIES ; -- Discharge Summaries
 N I,ORY,DATE,AUTHOR,PTLOC,SUBJ K ^TMP("TIUAUDIT",$J)
 D RPC^TIUSRV(.ORY,ID)
 S I=0 F  S I=$O(@ORY@(I)) Q:I'>0  S LCNT=LCNT+1,^TMP("ORXPND",$J,LCNT,0)=$G(@ORY@(I,0))
 K @ORY
 Q
PTINQ ; Print Patient Inquiry in List Manager
 N DFN,ORI,X
 S DFN=+ORVP
 D DGINQ(DFN)
 S ORI=4,LCNT=0
 F  S ORI=$O(^TMP("ORDATA",$J,1,ORI)) Q:'ORI  S X=^(ORI) D
 . S LCNT=LCNT+1
 . S ^TMP("ORXPND",$J,LCNT,0)=X
 K ^TMP("ORDATA",$J,1)
 Q
 ;
DGINQ(DFN) ; Patient Inquiry
 D START^ORWRP(80,"DGINQB^ORCXPND1(DFN)")
 Q
DGINQB(DFN) ; Build Patient Inquiry
 N CONTACT,ORDOC,ORTEAM,ORMHP,ORVP,XQORNOD,ORSSTRT,ORSSTOPT,VAOA,CPRSGUI,ORINP,ORATP,ORASS,ORENRI,ORENRD,ORENC,ORESG,A
 S ORVP=DFN_";DPT(",XQORNOD=1,CPRSGUI=1
 D EN^DGRPD ; MAS Patient Inquiry
 I $$GET^XPAR("ALL","ORWPT SHOW CAREGIVER") D
 . W !!,"Caregiver Information:"
 . N ORRET,ORRETS,ORPRIM,ORSEC,ORGEN,ORA,ORD
 . W ! D GET^VAFCREL(.ORRET,DFN)
 . I $P(ORRET(0),"^")=-1 W "Caregiver information not currently available: ",$P(ORRET(0),"^",2),! Q
 . I $P(ORRET(0),"^")=0 W "No Caregiver information returned." Q
 . S ORRETS=0,ORPRIM="",ORSEC="",ORGEN=""
 . F  S ORRETS=$O(ORRET(ORRETS)) Q:'ORRETS  D
 .. S ORA=$G(ORRET(ORRETS)) I ORA="" Q
 .. I $P(ORA,"^",2)="CGP",$P(ORA,"^",5)="ACTIVE" S ORD("PRIM",ORRETS)=$P(ORA,"^",8) Q
 .. I $P(ORA,"^",2)="CGS",$P(ORA,"^",5)="ACTIVE" S ORD("SEC",ORRETS)=$P(ORA,"^",8) Q
 .. I $P(ORA,"^",2)="CGG",$P(ORA,"^",5)="ACTIVE" S ORD("GEN",ORRETS)=$P(ORA,"^",8)
 .. Q
 . I $D(ORD("PRIM")) D
 .. W ?5,"Primary Caregiver: "
 .. S ORRETS=0
 .. F  S ORRETS=$O(ORD("PRIM",ORRETS)) Q:'ORRETS  W ?24,ORD("PRIM",ORRETS),!
 .. W !
 . I $D(ORD("SEC")) D
 .. W ?3,"Secondary Caregiver: "
 .. S ORRETS=0
 .. F  S ORRETS=$O(ORD("SEC",ORRETS)) Q:'ORRETS  W ?24,ORD("SEC",ORRETS),!
 .. W !
 . I $D(ORD("GEN")) D
 .. W ?5,"General Caregiver: "
 .. S ORRETS=0
 .. F  S ORRETS=$O(ORD("GEN",ORRETS)) Q:'ORRETS  W ?24,ORD("GEN",ORRETS),!
 S ORENRI=$$FINDCUR^DGENA(DFN),A=$$GET^DGENA(ORENRI,.ORENRD),ORENC=$$CATEGORY^DGENA4(DFN),ORESG=$S($G(ORENRD("SUBGRP"))]"":$$EXT^DGENU("SUBGRP",ORENRD("SUBGRP")),1:"")
 W !!!,"Enrollment Priority: ",$S($G(ORENRD("PRIORITY"))]"":"GROUP "_$G(ORENRD("PRIORITY")),1:"")_ORESG,?40,"Category: ",$$EXTCAT^DGENA4(ORENC),!!
 K CPRSGUI
 ;
 S ORDOC=$$OUTPTPR^SDUTL3(DFN)
 S ORTEAM=$$OUTPTTM^SDUTL3(DFN)
 S ORMHP=$$START^SCMCMHTC(DFN) ;Retrieve Mental Health Provider
 S ORINP=$G(^DPT(DFN,.104))
 S ORATP=$G(^DPT(DFN,.1041))
 S ORASS=$P($$OUTPTAP^SDUTL3(DFN,DT),U,2)
 I ORDOC!ORTEAM!ORMHP!ORINP!ORATP  D
 . W !!,"Primary Care Information:"
 . I ORDOC W !,"Primary Practitioner: ",$P(ORDOC,"^",2)
 . I ORTEAM W !,"Primary Care Team:    ",$P(ORTEAM,"^",2)
 . I $$INPT^ORWPT1(DFN) D
 . . I ORATP W !,"Attending Physician:  ",$P($G(^VA(200,+ORATP,0)),U)
 . . I ORINP W !,"Inpatient Provider:   ",$P($G(^VA(200,+ORINP,0)),U)
 . I $L(ORASS) W !,"Associate Provider:   ",ORASS
 . I ORMHP D
 .. W !!,"MH Treatment Information:"
 .. W !,"MH Treatment Coord:   ",$E($P(ORMHP,"^",2),1,28) D
 ... W ?52,"Position: ",$E($P(ORMHP,"^",3),1,18)
 .. W !,"MH Treatment Team:    ",$E($P(ORMHP,"^",5),1,56)
 W !!,"Health Insurance Information:"
 D DISP^DGIBDSP  ;DBIA #4408
 W !!,"Service Connection/Rated Disabilities:"
 D DIS^DGRPDB
 F CONTACT="N","S" D
 .S VAOA("A")=$S(CONTACT="N":"",1:3)
 .D OAD^VADPT ;   Get NOK Information
 .I VAOA(9)]"" D
 .. W !!,$S(CONTACT="N":"Next of Kin Information:",1:"Secondary Next of Kin Information:")
 .. W !,"Name:  ",VAOA(9)                          ;     NOK Name
 .. I VAOA(10)]"" W " (",VAOA(10),")"              ;     Relationship
 .. I VAOA(1)]"" W !?7,VAOA(1)                     ;     Address Line 1
 .. I VAOA(2)]"" W !?7,VAOA(2)                     ;     Line 2
 .. I VAOA(3)]"" W !?7,VAOA(3)                     ;     Line 3
 .. I VAOA(4)]"" D
 .. . W !?7,VAOA(4)                                ;     City
 .. . I VAOA(5)]"" W ", "_$P(VAOA(5),"^",2)        ;     State
 .. . W "  ",$P(VAOA(11),"^",2)                    ;     Zip+4
 .. I VAOA(8)]"" W !!?7,"Phone number:  ",VAOA(8)  ;     Phone
 .. I CONTACT="N",$P($G(^DPT(DFN,.21)),U,11)]"" W !?7,"Work phone number:  ",$P(^DPT(DFN,.21),U,11)
 .. I CONTACT="S",$P($G(^DPT(DFN,.211)),U,11)]"" W !?7,"Work phone number:  ",$P(^DPT(DFN,.211),U,11)
 D KVAR^VADPT
 Q
TRIM(X) ;   Trim Spaces
 S X=$G(X) F  Q:$E(X,1)'=" "  S X=$E(X,2,$L(X))
 F  Q:$E(X,$L(X))'=" "  S X=$E(X,1,($L(X)-1))
 Q X
S(X,Y,Z) ; Pad Over
 ;   X=Column #
 ;   Y=Current Length
 ;   Z=Text
 ;   SP=Text Sent
 ;   CCNT=Line Position After Input Text
 I '$D(Z) Q ""
 N SP S SP=Z I X,Y,X>Y S SP=$E("                                                                             ",1,X-Y)_Z
 S CCNT=$$INC(CCNT,SP)
 Q SP
INC(X,Y) ; Character Position Count
 ;   X=Current Count
 ;   Y=Text
 N INC S INC=X+$L(Y)
 Q INC
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HORCXPND1   13504     printed  Sep 23, 2025@20:05:25                                                                                                                                                                                                   Page 2
ORCXPND1  ; SLC/MKB - Expanded Display cont ;May 3, 2021@21:00
 +1       ;;3.0;ORDER ENTRY/RESULTS REPORTING;**26,67,75,89,92,94,148,159,188,172,215,243,280,340,306,350,423,514,527,539,513,585**;Dec 17, 1997;Build 2
 +2       ;
 +3       ; External References
 +4       ;   DBIA  2387  ^LAB(60
 +5       ;   DBIA  3420  ^DPT(  file #2
 +6       ;   DBIA 10035  ^DPT(  file #2
 +7       ;   DBIA 10037  EN^DGRPD
 +8       ;   DBIA   700  DIS^DGRPDB
 +9       ;   DBIA  2926  RT^GMRCGUIA
 +10      ;   DBIA  2925  DT^GMRCSLM2                     ^TMP("GMRCR"
 +11      ;   DBIA  2503  RR^LR7OR1                       ^TMP("LRRR"
 +12      ;   DBIA  2951  EN1^LR7OSBR                     ^TMP("LRC"
 +13      ;   DBIA  2952  EN^LR7OSMZ0
 +14      ;   DBIA  2400  OEL^PSOORRL                     ^TMP("PS"
 +15      ;   DBIA  2877  EN3^RAO7PC3
 +16      ;   DBIA  2877  EN30^RAO7PC3
 +17      ;   DBIA  1252  $$OUTPTPR^SDUTL3
 +18      ;   DBIA  1252  $$OUTPTTM^SDUTL3
 +19      ;   DBIA  1252  $$OUTPTAP^SDUTL3
 +20      ;   DBIA  2832  RPC^TIUSRV
 +21      ;   DBIA 10061  DEM^VADPT
 +22      ;   DBIA 10061  KVAR^VADPT
 +23      ;   DBIA 10061  OAD^VADPT
 +24      ;   DBIA 10103  $$FMTE^XLFDT
 +25      ;   DBIA  4408  DISP^DGIBDSP
 +26      ;   DBIA  5697  START^SCMCMHTC
 +27      ;   DBIA  7104  EXT^DGENU
 +28      ;   DBIA  4192  EXTCAT^DGENA4 and CATEGORY^DGENA4
 +29      ;   DBIA  3812  FINDCUR^DGENA and GET^DGENA
 +30      ;   DBIA  3880  CPRS^VBECA3B
 +31      ;   DBIA  7203  EN^VBECRPT
 +32      ;   DBIA  7249  GET^VAFCREL
 +33      ;
COVER     ; -- Cover Sheet
 +1        NEW PKG
           SET PKG=$PIECE($GET(^TMP("OR",$JOB,ORTAB,"IDX",NUM)),U,4)
 +2        if PKG="GMRA"
               DO ALLERGY^ORCXPND2
           if PKG="TIU"
               DO NOTES
 +3        QUIT 
NOTES     ; -- Progress Notes
 +1        NEW I,ORY,DATE,AUTHOR,PTLOC,SUBJ
           KILL ^TMP("TIUAUDIT",$JOB)
 +2        DO RPC^TIUSRV(.ORY,ID)
 +3        SET I=0
           FOR 
               SET I=$ORDER(@ORY@(I))
               if I'>0
                   QUIT 
               SET LCNT=LCNT+1
               SET ^TMP("ORXPND",$JOB,LCNT,0)=$GET(@ORY@(I,0))
 +4        KILL @ORY
 +5        QUIT 
PROBLEMS  ; -- Problem List
 +1        DO PL^ORCXPND4
 +2        QUIT 
MEDS      ; -- Pharmacy
 +1       ;N NODE,ORIFN
 +2        KILL ^TMP("PS",$JOB)
 +3       ;S NODE=$G(^TMP("PS",$J,0)),ORIFN=+$P(NODE,U,11)
           DO OEL^PSOORRL(+ORVP,ID)
 +4       ;DBIA 2400
           SET ID=+$PIECE($GET(^TMP("PS",$JOB,0)),U,11)
           DO ORDERS
 +5       ;D @($S($P($G(^OR(100,ORIFN,0)),U,11)=$O(^ORD(100.98,"B","IV RX",0)):"IV",1:"DRUG")_"^ORCXPND2")
 +6        KILL ^TMP("PS",$JOB)
 +7        QUIT 
LABS      ; -- Laboratory [RESULTS ONLY for ID=OE order #]
 +1        NEW ORIFN,X,SUB,TEST,NAME,SS,IDE,IVDT,TST,CCNT,ORCY,IG,TCNT,XT
 +2       ;DBIA 2503
           KILL ^TMP("LRRR",$JOB)
 +3       ; OE# -> Lab#
           SET ORIFN=+ID
           SET IDE=$GET(^OR(100,+ID,4))
           if '$LENGTH(IDE)
               QUIT 
 +4       ;coversheet and orders result display
           IF $GET(DFN)
               IF $PIECE(IDE,";",4)?1(1"SP",1"CY",1"EM")
                   NEW XQADATA
                   SET XQADATA=$PIECE(IDE,";",4)_U_U_$PIECE(IDE,";",5)
                   DO AP^ORCXPND3
                   QUIT 
 +5       ;lookup on file 63 first
           IF $PIECE(IDE,";",5)
               DO RR^LR7OR1(+ORVP,,9999999-$PIECE(IDE,";",5),9999999-$PIECE(IDE,";",5),$PIECE(IDE,";",4))
 +6        IF '$PIECE(IDE,";",5)
               IF +IDE
                   DO RR^LR7OR1(+ORVP,IDE)
                   IF '$DATA(^TMP("LRRR",$JOB,+ORVP))
                       SET $PIECE(IDE,";",1,3)=";;"
 +7        KILL ORCY
           DO TEXT^ORQ12(.ORCY,ORIFN,80)
 +8        SET IG=0
           FOR 
               SET IG=$ORDER(ORCY(IG))
               if IG<1
                   QUIT 
               SET X=ORCY(IG)
               DO ITEM^ORCXPND(X)
 +9        DO BLANK^ORCXPND
           IF '$DATA(^TMP("LRRR",$JOB,+ORVP))
               SET LCNT=LCNT+1
               SET ^TMP("ORXPND",$JOB,LCNT,0)="No data available."
               QUIT 
 +10       MERGE TEST=^TMP("LRRR",$JOB,+ORVP)
           SET CCNT=0
           SET SS=""
 +11       FOR 
               SET SS=$ORDER(TEST(SS))
               if SS=""
                   QUIT 
               SET IVDT=0
               FOR 
                   SET IVDT=$ORDER(TEST(SS,IVDT))
                   if 'IVDT
                       QUIT 
                   Begin DoDot:1
 +12                   IF SS="BB"
                           Begin DoDot:2
 +13      ;Transition to VBEC's interface
                               IF $$GET^XPAR("DIV^SYS^PKG","OR VBECS ON",1,"Q")
                                   IF $LENGTH($TEXT(EN^ORWLR1))
                                       IF $LENGTH($TEXT(CPRS^VBECA3B))
                                           Begin DoDot:3
 +14                                           KILL ^TMP("ORLRC",$JOB)
 +15      ;D EN^ORWLR1(DFN) ;RLM
 +16      ;RLM
                                               DO EN^VBECRPT
 +17                                           IF '$ORDER(^TMP("ORLRC",$JOB,0))
                                                   SET ^TMP("ORLRC",$JOB,1,0)=""
                                                   SET ^TMP("ORLRC",$JOB,2,0)="No Blood Bank report available..."
 +18                                           NEW I
                                               SET I=0
                                               FOR 
                                                   SET I=$ORDER(^TMP("ORLRC",$JOB,I))
                                                   if I<1
                                                       QUIT 
                                                   SET X=^(I,0)
                                                   SET LCNT=LCNT+1
                                                   SET ^TMP("ORXPND",$JOB,LCNT,0)=X
 +19                                           KILL ^TMP("ORLRC",$JOB)
                                           End DoDot:3
                                           QUIT 
 +20      ;DBIA 2951
                               KILL ^TMP("LRC",$JOB)
                               DO EN1^LR7OSBR(+ORVP)
                               if '$DATA(^TMP("LRC",$JOB))
                                   QUIT 
                               Begin DoDot:3
 +21                               NEW I
                                   SET I=0
                                   FOR 
                                       SET I=$ORDER(^TMP("LRC",$JOB,I))
                                       if I<1
                                           QUIT 
                                       SET X=^(I,0)
                                       SET LCNT=LCNT+1
                                       SET ^TMP("ORXPND",$JOB,LCNT,0)=X
 +22                               KILL ^TMP("LRC",$JOB)
                               End DoDot:3
                               QUIT 
                           End DoDot:2
 +23                   IF SS="MI"
                           KILL ^TMP("LRC",$JOB)
                           DO EN^LR7OSMZ0(+ORVP)
                           if '$DATA(^TMP("LRC",$JOB))
                               QUIT 
                           Begin DoDot:2
 +24                           NEW I
                               SET I=0
                               FOR 
                                   SET I=$ORDER(^TMP("LRC",$JOB,I))
                                   if I<1
                                       QUIT 
                                   SET X=^(I,0)
                                   SET LCNT=LCNT+1
                                   SET ^TMP("ORXPND",$JOB,LCNT,0)=X
 +25                           KILL ^TMP("LRC",$JOB)
                           End DoDot:2
                           QUIT 
 +26                   IF SS="CH"
                           Begin DoDot:2
 +27                           SET (TCNT,TST)=0
                               FOR 
                                   SET TST=$ORDER(TEST(SS,IVDT,TST))
                                   if TST=""
                                       QUIT 
                                   SET CCNT=0
                                   SET TCNT=TCNT+1
                                   Begin DoDot:3
 +28                                   IF TCNT=1
                                           Begin DoDot:4
 +29                                           SET LINE="Collection time: "_$$FMTE^XLFDT(9999999-IVDT,"M")
 +30                                           DO SETLINE(LINE,.LCNT)
 +31                                           DO BLANK^ORCXPND
 +32                                           SET LINE=$$S(1,CCNT," ")_$$S(2,CCNT,"Test Name")_$$S(38,CCNT,"Result")_$$S(48,CCNT,"Units")_$$S(64,CCNT,"Range")
 +33                                           DO SETLINE(LINE,.LCNT)
 +34                                           SET CCNT=0
                                               SET LINE=$$S(1,CCNT," ")_$$S(2,CCNT,"---------")_$$S(38,CCNT,"------")_$$S(48,CCNT,"-----")_$$S(64,CCNT,"-----")
 +35                                           DO SETLINE(LINE,.LCNT)
 +36                                           if $DATA(IOUON)
                                                   DO SETVIDEO^ORCXPND(LCNT,1,70,IOUON,IOUOFF)
                                           End DoDot:4
 +37                                   IF TST
                                           SET XT=TEST(SS,IVDT,TST)
                                           SET CCNT=0
                                           IF +XT
                                               Begin DoDot:4
 +38                                               SET NAME=$SELECT($LENGTH($PIECE(^LAB(60,+XT,0),U))>25:$SELECT($LENGTH($PIECE($GET(^(.1)),U)):$PIECE(^(.1),U),1:$EXTRACT($PIECE(^(0),U),1,25)),1:$EXTRACT($PIECE(^(0),U),1,25))
 +39      ;OR*3.0*585: Adjusted spacing in line below - $$S(24... instead of $$S(25...
 +40      ;            and add " " before $$S(31
 +41                                               SET LINE=$$S(1,CCNT,NAME)_$$S(24,CCNT,$JUSTIFY($PIECE(XT,U,2),20))_" "_$$S(31,CCNT,$SELECT($LENGTH($PIECE(XT,U,3)):$PIECE(XT,U,3),1:""))_$$S(48,CCNT,$PIECE(XT,U,4))_$$S(58,CCNT,$JUSTIFY($PIECE(XT,U,5),15)
)
 +42                                               DO SETLINE(LINE,.LCNT)
 +43                                               IF $PIECE(XT,U,20)
                                                       SET ^TMP("ORPLS",$JOB,$PIECE(XT,U,20))=""
 +44                                               IF $LENGTH($PIECE(XT,U,3))
                                                       IF $DATA(IOINHI)
                                                           DO SETVIDEO^ORCXPND(LCNT,26,8,IOINHI,IOINORM)
 +45                                               IF $PIECE(XT,U,3)["*"
                                                       IF $DATA(IOBON)
                                                           IF $DATA(IOINHI)
                                                               DO SETVIDEO^ORCXPND(LCNT,26,8,IOBON_IOINHI,IOBOFF_IOINORM)
                                               End DoDot:4
 +46                                   IF TST="N"
                                           SET LINE=" Comments: "
                                           Begin DoDot:4
 +47                                           DO SETLINE(LINE,.LCNT)
 +48                                           NEW CMT
                                               SET CMT=0
                                               FOR 
                                                   SET CMT=$ORDER(TEST(SS,IVDT,"N",CMT))
                                                   if 'CMT
                                                       QUIT 
                                                   SET LINE=" "_TEST(SS,IVDT,"N",CMT)
                                                   DO SETLINE(LINE,.LCNT)
                                           End DoDot:4
                                   End DoDot:3
                           End DoDot:2
                           QUIT 
                   End DoDot:1
 +49       IF $LENGTH($ORDER(^TMP("ORPLS",$JOB,"")))
               DO SETLINE(" ",.LCNT)
               DO SETLINE(" ",.LCNT)
               DO SETLINE("===============================================================================",.LCNT)
               DO PLS
 +50       DO SETLINE(" ",.LCNT)
 +51       KILL ^TMP("LRRR",$JOB)
 +52       QUIT 
 +53      ;
PLS       ; List performing laboratories
 +1        NEW LINE,ORPLS,X
 +2        DO SETLINE("Performing Lab Sites",.LCNT)
 +3        SET ORPLS=0
 +4        FOR 
               SET ORPLS=$ORDER(^TMP("ORPLS",$JOB,ORPLS))
               if ORPLS<1
                   QUIT 
               Begin DoDot:1
 +5                SET LINE=$$LJ^XLFSTR("["_ORPLS_"] ",8)_$$NAME^XUAF4(ORPLS)
 +6                DO SETLINE(LINE,.LCNT)
 +7                SET X=$$PADD^XUAF4(ORPLS)
 +8                SET LINE=$$REPEAT^XLFSTR(" ",8)_$PIECE(X,U)_" "_$PIECE(X,U,2)_", "_$PIECE(X,U,3)_" "_$PIECE(X,U,4)
 +9                DO SETLINE(LINE,.LCNT)
               End DoDot:1
 +10       DO SETLINE("===============================================================================",.LCNT)
 +11       KILL ^TMP("ORPLS",$JOB)
 +12       QUIT 
 +13      ;
SETLINE(LINE,CNT) ;
 +1        SET CNT=CNT+1
           SET ^TMP("ORXPND",$JOB,CNT,0)=LINE
 +2        QUIT 
 +3       ;
DELAY     ; -- Delayed Orders
NEW       ; -- New Orders
ORDERS    ; -- Orders
 +1        IF '$GET(ORESULTS)
               DO ORDERS^ORCXPND2
               QUIT 
 +2       ; -- Results Display (Add more packages as available)
 +3        NEW PKG,TAB,ORIFN
 +4        SET PKG=+$PIECE($GET(^OR(100,+ID,0)),"^",14)
           SET PKG=$$NMSP^ORCD(PKG)
 +5        SET TAB=$SELECT(PKG="LR":"LABS",PKG="GMRC":"CONSULTS",PKG="RA":"XRAYS",1:"")
 +6       ; no display available
           IF '$LENGTH(TAB)!(ID'>0)
               Begin DoDot:1
 +7                NEW ORY,I
                   DO TEXT^ORQ12(.ORY,+ID,80)
 +8                SET I=0
                   FOR 
                       SET I=$ORDER(ORY(I))
                       if I'>0
                           QUIT 
                       DO ITEM^ORCXPND(ORY(I))
 +9                DO BLANK^ORCXPND
 +10               SET LCNT=LCNT+1
                   SET ^TMP("ORXPND",$JOB,LCNT,0)="There are no results to report."
               End DoDot:1
               QUIT 
 +11       IF $ORDER(^OR(100,+ID,2,0))
               SET ORIFN=+ID
               SET ID=0
               FOR 
                   SET ID=$ORDER(^OR(100,ORIFN,2,ID))
                   if ID<1
                       QUIT 
                   IF $DATA(^OR(100,ID,0))
                       DO @TAB
 +12       IF '$ORDER(^OR(100,+ID,2,0))
               DO @TAB
 +13       QUIT 
REPORTS   ; -- Patient Profiles
 +1       ; Reports
           DO EN^ORCXPNDR
 +2        QUIT 
CONSULTS  ; -- Consults
 +1       ;,VALMAR
           NEW I,X,SUB,ORTX
 +2        IF $GET(ORTAB)="CONSULTS"
               SET X=$PIECE($GET(^TMP("OR",$JOB,ORTAB,"IDX",NUM)),U,4)
 +3       ; OE->GMRC order#
          IF '$TEST
               DO TEXT^ORQ12(.ORTX,+ID)
               SET X=ORTX(1)
               SET ID=+$GET(^OR(100,+ID,4))
 +4        DO ITEM^ORCXPND(X)
           DO BLANK^ORCXPND
 +5        IF ID'>0
               SET LCNT=LCNT+1
               SET ^TMP("ORXPND",$JOB,LCNT,0)="No data available."
               QUIT 
 +6       ;DT action
           IF '$GET(ORESULTS)
               Begin DoDot:1
 +7                SET LCNT=LCNT+1
                   SET ^TMP("ORXPND",$JOB,LCNT,0)="Consult No.:           "_ID
 +8       ;DBIA 2925
                   NEW GMRCOER
                   SET GMRCOER=2
                   DO DT^GMRCSLM2(ID)
                   SET SUB="DT"
               End DoDot:1
 +9        IF $GET(ORESULTS)
               DO RT^GMRCGUIA(ID,"^TMP(""GMRCR"",$J,""RT"")")
               SET SUB="RT"
 +10      ;DBIA 2925
           SET I=0
           FOR 
               SET I=$ORDER(^TMP("GMRCR",$JOB,SUB,I))
               if I'>0
                   QUIT 
               SET X=$GET(^(I,0))
               SET LCNT=LCNT+1
               SET ^TMP("ORXPND",$JOB,LCNT,0)=X
 +11       KILL ^TMP("GMRCR",$JOB)
 +12       QUIT 
XRAYS     ; -- Radiology
 +1        IF '$GET(ORESULTS)
               SET ID=+ORVP_U_$TRANSLATE(ID,"-","^")
               DO EN3^RAO7PC3(ID)
 +2        IF $GET(ORESULTS)
               SET ID=+$GET(^OR(100,+ID,4))
               DO EN30^RAO7PC3(ID)
 +3        NEW CASE,PROC,PSET
           SET PSET=$DATA(^TMP($JOB,"RAE3",+ORVP,"PRINT_SET"))
 +4        SET CASE=0
           FOR 
               SET CASE=$ORDER(^TMP($JOB,"RAE3",+ORVP,CASE))
               if CASE'>0
                   QUIT 
               Begin DoDot:1
 +5                IF PSET
                       SET PROC=$ORDER(^TMP($JOB,"RAE3",+ORVP,CASE,""))
                       DO ITEM^ORCXPND(PROC)
                       QUIT 
 +6                SET PROC=""
                   FOR 
                       SET PROC=$ORDER(^TMP($JOB,"RAE3",+ORVP,CASE,PROC))
                       if PROC=""
                           QUIT 
                       DO ITEM^ORCXPND(PROC)
                       DO BLANK^ORCXPND
                       DO XRPT
                       DO BLANK^ORCXPND
               End DoDot:1
 +7       ;printset=list all procs, then one report
           IF PSET
               SET CASE=$ORDER(^TMP($JOB,"RAE3",+ORVP,0))
               SET PROC=$ORDER(^(CASE,""))
               DO BLANK^ORCXPND
               DO XRPT
               DO BLANK^ORCXPND
 +8        KILL ^TMP($JOB,"RAE3",+ORVP),^UTILITY($JOB,"W")
 +9        SET VALM("RM")=81
 +10       QUIT 
 +11      ;
XRPT      ; -- Body of Report for CASE, PROC
 +1        NEW ORD,X,I
 +2        SET ORD=$SELECT($LENGTH($GET(^TMP($JOB,"RAE3",+ORVP,"ORD"))):^("ORD"),$LENGTH($GET(^("ORD",CASE))):^(CASE),1:"")
           IF $LENGTH(ORD)
               IF ORD'=PROC
                   SET LCNT=LCNT+1
                   SET ^TMP("ORXPND",$JOB,LCNT,0)="Proc Ord: "_ORD
 +3       ;Skip pt ID on line 1
           SET I=1
           FOR 
               SET I=$ORDER(^TMP($JOB,"RAE3",+ORVP,CASE,PROC,I))
               if I'>0
                   QUIT 
               SET X=^(I)
               SET LCNT=LCNT+1
               SET ^TMP("ORXPND",$JOB,LCNT,0)=X
 +4        QUIT 
 +5       ;
SUMMRIES  ; -- Discharge Summaries
 +1        NEW I,ORY,DATE,AUTHOR,PTLOC,SUBJ
           KILL ^TMP("TIUAUDIT",$JOB)
 +2        DO RPC^TIUSRV(.ORY,ID)
 +3        SET I=0
           FOR 
               SET I=$ORDER(@ORY@(I))
               if I'>0
                   QUIT 
               SET LCNT=LCNT+1
               SET ^TMP("ORXPND",$JOB,LCNT,0)=$GET(@ORY@(I,0))
 +4        KILL @ORY
 +5        QUIT 
PTINQ     ; Print Patient Inquiry in List Manager
 +1        NEW DFN,ORI,X
 +2        SET DFN=+ORVP
 +3        DO DGINQ(DFN)
 +4        SET ORI=4
           SET LCNT=0
 +5        FOR 
               SET ORI=$ORDER(^TMP("ORDATA",$JOB,1,ORI))
               if 'ORI
                   QUIT 
               SET X=^(ORI)
               Begin DoDot:1
 +6                SET LCNT=LCNT+1
 +7                SET ^TMP("ORXPND",$JOB,LCNT,0)=X
               End DoDot:1
 +8        KILL ^TMP("ORDATA",$JOB,1)
 +9        QUIT 
 +10      ;
DGINQ(DFN) ; Patient Inquiry
 +1        DO START^ORWRP(80,"DGINQB^ORCXPND1(DFN)")
 +2        QUIT 
DGINQB(DFN) ; Build Patient Inquiry
 +1        NEW CONTACT,ORDOC,ORTEAM,ORMHP,ORVP,XQORNOD,ORSSTRT,ORSSTOPT,VAOA,CPRSGUI,ORINP,ORATP,ORASS,ORENRI,ORENRD,ORENC,ORESG,A
 +2        SET ORVP=DFN_";DPT("
           SET XQORNOD=1
           SET CPRSGUI=1
 +3       ; MAS Patient Inquiry
           DO EN^DGRPD
 +4        IF $$GET^XPAR("ALL","ORWPT SHOW CAREGIVER")
               Begin DoDot:1
 +5                WRITE !!,"Caregiver Information:"
 +6                NEW ORRET,ORRETS,ORPRIM,ORSEC,ORGEN,ORA,ORD
 +7                WRITE !
                   DO GET^VAFCREL(.ORRET,DFN)
 +8                IF $PIECE(ORRET(0),"^")=-1
                       WRITE "Caregiver information not currently available: ",$PIECE(ORRET(0),"^",2),!
                       QUIT 
 +9                IF $PIECE(ORRET(0),"^")=0
                       WRITE "No Caregiver information returned."
                       QUIT 
 +10               SET ORRETS=0
                   SET ORPRIM=""
                   SET ORSEC=""
                   SET ORGEN=""
 +11               FOR 
                       SET ORRETS=$ORDER(ORRET(ORRETS))
                       if 'ORRETS
                           QUIT 
                       Begin DoDot:2
 +12                       SET ORA=$GET(ORRET(ORRETS))
                           IF ORA=""
                               QUIT 
 +13                       IF $PIECE(ORA,"^",2)="CGP"
                               IF $PIECE(ORA,"^",5)="ACTIVE"
                                   SET ORD("PRIM",ORRETS)=$PIECE(ORA,"^",8)
                                   QUIT 
 +14                       IF $PIECE(ORA,"^",2)="CGS"
                               IF $PIECE(ORA,"^",5)="ACTIVE"
                                   SET ORD("SEC",ORRETS)=$PIECE(ORA,"^",8)
                                   QUIT 
 +15                       IF $PIECE(ORA,"^",2)="CGG"
                               IF $PIECE(ORA,"^",5)="ACTIVE"
                                   SET ORD("GEN",ORRETS)=$PIECE(ORA,"^",8)
 +16                       QUIT 
                       End DoDot:2
 +17               IF $DATA(ORD("PRIM"))
                       Begin DoDot:2
 +18                       WRITE ?5,"Primary Caregiver: "
 +19                       SET ORRETS=0
 +20                       FOR 
                               SET ORRETS=$ORDER(ORD("PRIM",ORRETS))
                               if 'ORRETS
                                   QUIT 
                               WRITE ?24,ORD("PRIM",ORRETS),!
 +21                       WRITE !
                       End DoDot:2
 +22               IF $DATA(ORD("SEC"))
                       Begin DoDot:2
 +23                       WRITE ?3,"Secondary Caregiver: "
 +24                       SET ORRETS=0
 +25                       FOR 
                               SET ORRETS=$ORDER(ORD("SEC",ORRETS))
                               if 'ORRETS
                                   QUIT 
                               WRITE ?24,ORD("SEC",ORRETS),!
 +26                       WRITE !
                       End DoDot:2
 +27               IF $DATA(ORD("GEN"))
                       Begin DoDot:2
 +28                       WRITE ?5,"General Caregiver: "
 +29                       SET ORRETS=0
 +30                       FOR 
                               SET ORRETS=$ORDER(ORD("GEN",ORRETS))
                               if 'ORRETS
                                   QUIT 
                               WRITE ?24,ORD("GEN",ORRETS),!
                       End DoDot:2
               End DoDot:1
 +31       SET ORENRI=$$FINDCUR^DGENA(DFN)
           SET A=$$GET^DGENA(ORENRI,.ORENRD)
           SET ORENC=$$CATEGORY^DGENA4(DFN)
           SET ORESG=$SELECT($GET(ORENRD("SUBGRP"))]"":$$EXT^DGENU("SUBGRP",ORENRD("SUBGRP")),1:"")
 +32       WRITE !!!,"Enrollment Priority: ",$SELECT($GET(ORENRD("PRIORITY"))]"":"GROUP "_$GET(ORENRD("PRIORITY")),1:"")_ORESG,?40,"Category: ",$$EXTCAT^DGENA4(ORENC),!!
 +33       KILL CPRSGUI
 +34      ;
 +35       SET ORDOC=$$OUTPTPR^SDUTL3(DFN)
 +36       SET ORTEAM=$$OUTPTTM^SDUTL3(DFN)
 +37      ;Retrieve Mental Health Provider
           SET ORMHP=$$START^SCMCMHTC(DFN)
 +38       SET ORINP=$GET(^DPT(DFN,.104))
 +39       SET ORATP=$GET(^DPT(DFN,.1041))
 +40       SET ORASS=$PIECE($$OUTPTAP^SDUTL3(DFN,DT),U,2)
 +41       IF ORDOC!ORTEAM!ORMHP!ORINP!ORATP
               Begin DoDot:1
 +42               WRITE !!,"Primary Care Information:"
 +43               IF ORDOC
                       WRITE !,"Primary Practitioner: ",$PIECE(ORDOC,"^",2)
 +44               IF ORTEAM
                       WRITE !,"Primary Care Team:    ",$PIECE(ORTEAM,"^",2)
 +45               IF $$INPT^ORWPT1(DFN)
                       Begin DoDot:2
 +46                       IF ORATP
                               WRITE !,"Attending Physician:  ",$PIECE($GET(^VA(200,+ORATP,0)),U)
 +47                       IF ORINP
                               WRITE !,"Inpatient Provider:   ",$PIECE($GET(^VA(200,+ORINP,0)),U)
                       End DoDot:2
 +48               IF $LENGTH(ORASS)
                       WRITE !,"Associate Provider:   ",ORASS
 +49               IF ORMHP
                       Begin DoDot:2
 +50                       WRITE !!,"MH Treatment Information:"
 +51                       WRITE !,"MH Treatment Coord:   ",$EXTRACT($PIECE(ORMHP,"^",2),1,28)
                           Begin DoDot:3
 +52                           WRITE ?52,"Position: ",$EXTRACT($PIECE(ORMHP,"^",3),1,18)
                           End DoDot:3
 +53                       WRITE !,"MH Treatment Team:    ",$EXTRACT($PIECE(ORMHP,"^",5),1,56)
                       End DoDot:2
               End DoDot:1
 +54       WRITE !!,"Health Insurance Information:"
 +55      ;DBIA #4408
           DO DISP^DGIBDSP
 +56       WRITE !!,"Service Connection/Rated Disabilities:"
 +57       DO DIS^DGRPDB
 +58       FOR CONTACT="N","S"
               Begin DoDot:1
 +59               SET VAOA("A")=$SELECT(CONTACT="N":"",1:3)
 +60      ;   Get NOK Information
                   DO OAD^VADPT
 +61               IF VAOA(9)]""
                       Begin DoDot:2
 +62                       WRITE !!,$SELECT(CONTACT="N":"Next of Kin Information:",1:"Secondary Next of Kin Information:")
 +63      ;     NOK Name
                           WRITE !,"Name:  ",VAOA(9)
 +64      ;     Relationship
                           IF VAOA(10)]""
                               WRITE " (",VAOA(10),")"
 +65      ;     Address Line 1
                           IF VAOA(1)]""
                               WRITE !?7,VAOA(1)
 +66      ;     Line 2
                           IF VAOA(2)]""
                               WRITE !?7,VAOA(2)
 +67      ;     Line 3
                           IF VAOA(3)]""
                               WRITE !?7,VAOA(3)
 +68                       IF VAOA(4)]""
                               Begin DoDot:3
 +69      ;     City
                                   WRITE !?7,VAOA(4)
 +70      ;     State
                                   IF VAOA(5)]""
                                       WRITE ", "_$PIECE(VAOA(5),"^",2)
 +71      ;     Zip+4
                                   WRITE "  ",$PIECE(VAOA(11),"^",2)
                               End DoDot:3
 +72      ;     Phone
                           IF VAOA(8)]""
                               WRITE !!?7,"Phone number:  ",VAOA(8)
 +73                       IF CONTACT="N"
                               IF $PIECE($GET(^DPT(DFN,.21)),U,11)]""
                                   WRITE !?7,"Work phone number:  ",$PIECE(^DPT(DFN,.21),U,11)
 +74                       IF CONTACT="S"
                               IF $PIECE($GET(^DPT(DFN,.211)),U,11)]""
                                   WRITE !?7,"Work phone number:  ",$PIECE(^DPT(DFN,.211),U,11)
                       End DoDot:2
               End DoDot:1
 +75       DO KVAR^VADPT
 +76       QUIT 
TRIM(X)   ;   Trim Spaces
 +1        SET X=$GET(X)
           FOR 
               if $EXTRACT(X,1)'=" "
                   QUIT 
               SET X=$EXTRACT(X,2,$LENGTH(X))
 +2        FOR 
               if $EXTRACT(X,$LENGTH(X))'=" "
                   QUIT 
               SET X=$EXTRACT(X,1,($LENGTH(X)-1))
 +3        QUIT X
S(X,Y,Z)  ; Pad Over
 +1       ;   X=Column #
 +2       ;   Y=Current Length
 +3       ;   Z=Text
 +4       ;   SP=Text Sent
 +5       ;   CCNT=Line Position After Input Text
 +6        IF '$DATA(Z)
               QUIT ""
 +7        NEW SP
           SET SP=Z
           IF X
               IF Y
                   IF X>Y
                       SET SP=$EXTRACT("                                                                             ",1,X-Y)_Z
 +8        SET CCNT=$$INC(CCNT,SP)
 +9        QUIT SP
INC(X,Y)  ; Character Position Count
 +1       ;   X=Current Count
 +2       ;   Y=Text
 +3        NEW INC
           SET INC=X+$LENGTH(Y)
 +4        QUIT INC