| 1 | ORQ21 ; SLC/MKB/GSS - Detailed Order Report cont ; 10/6/2005 | 
|---|
| 2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**141,190,195,215**;Dec 17, 1997 | 
|---|
| 3 | ; | 
|---|
| 4 | ; DBIA 2400   OEL^PSOORRL   ^TMP("PS",$J) | 
|---|
| 5 | ; DBIA 2266   EN30^RAO7PC1  ^TMP($J,"RAE2") | 
|---|
| 6 | ; | 
|---|
| 7 | RAD(TCOM) ; -- add RA data for 2.5 orders | 
|---|
| 8 | N RAIFN,CASE,PROC,ORD,ORI,X,ORTTL,ORB | 
|---|
| 9 | S RAIFN=$G(^OR(100,ORIFN,4)) Q:RAIFN'>0 | 
|---|
| 10 | D EN30^RAO7PC1(RAIFN) Q:'$D(^TMP($J,"RAE2",+ORVP))  ;DBIA 2266 | 
|---|
| 11 | S ORD=$G(^TMP($J,"RAE2",+ORVP,"ORD")),CASE=$O(^(0)) Q:'CASE  S PROC=$O(^(CASE,"")) | 
|---|
| 12 | I '$G(TCOM) D  ;else add only Tech Comments | 
|---|
| 13 | . S CNT=CNT+1,@ORY@(CNT)=$$LJ^XLFSTR("Procedure:",30)_$S($L(ORD):ORD,1:PROC) | 
|---|
| 14 | . S ORI=0,ORTTL="Procedure Modifiers:          ",ORB=1 | 
|---|
| 15 | . F  S ORI=$O(^TMP($J,"RAE2",+ORVP,CASE,PROC,"M",ORI)) Q:ORI'>0  S CNT=CNT+1,@ORY@(CNT)=ORTTL_^(ORI),ORTTL=$$REPEAT^XLFSTR(" ",30) | 
|---|
| 16 | . S CNT=CNT+1,@ORY@(CNT)="History and Reason for Exam:" | 
|---|
| 17 | . F  S ORI=$O(^TMP($J,"RAE2",+ORVP,CASE,PROC,"H",ORI)) Q:ORI'>0  S CNT=CNT+1,@ORY@(CNT)="  "_^(ORI) | 
|---|
| 18 | RAD1 I $L($G(^TMP($J,"RAE2",+ORVP,CASE,PROC,"TCOM",1))) S X=^(1) D | 
|---|
| 19 | . N DIWL,DIWR,DIWF,I K ^UTILITY($J,"W") | 
|---|
| 20 | . S DIWL=1,DIWR=72,DIWF="C72" D ^DIWP | 
|---|
| 21 | . S CNT=CNT+1,@ORY@(CNT)="Technologist's Comment:",ORB=1 | 
|---|
| 22 | . S I=0 F  S I=$O(^UTILITY($J,"W",DIWL,I)) Q:I'>0  S CNT=CNT+1,@ORY@(CNT)="  "_^(I,0) | 
|---|
| 23 | I $D(^TMP($J,"RAE2",+ORVP,CASE,PROC,"CM")) D | 
|---|
| 24 | . S ORTTL="Contrast Media used:          ",ORI=0,ORB=1 | 
|---|
| 25 | . F  S ORI=$O(^TMP($J,"RAE2",+ORVP,CASE,PROC,"CM",ORI)) Q:ORI<1  S CNT=CNT+1,@ORY@(CNT)=ORTTL_$P(^(ORI),U,2),ORTTL=$$REPEAT^XLFSTR(" ",30) | 
|---|
| 26 | K ^TMP($J,"RAE2",+ORVP),^UTILITY($J,"W") | 
|---|
| 27 | S:$G(ORB) CNT=CNT+1,@ORY@(CNT)="   " ;blank | 
|---|
| 28 | Q | 
|---|
| 29 | ; | 
|---|
| 30 | MED ; -- Add Pharmacy order data | 
|---|
| 31 | Q:$G(^OR(100,ORIFN,4))["N"  ;non-VA med -- no refill history | 
|---|
| 32 | N TYPE,NODE,RXN,OR5,STAT S TYPE=$P(OR0,U,12) | 
|---|
| 33 | I '$D(^TMP("PS",$J,0)) D  ;get PS data / DBIA 2400 | 
|---|
| 34 | . N PSIFN S PSIFN=$G(^OR(100,ORIFN,4)) | 
|---|
| 35 | . S:TYPE="O" PSIFN=$TR(PSIFN,"S","P")_$S(PSIFN?1.N:"R",1:"") | 
|---|
| 36 | . D OEL^PSOORRL(+ORVP,PSIFN_";"_TYPE)  ;DBIA 2400 | 
|---|
| 37 | S NODE=$G(^TMP("PS",$J,0)),RXN=$G(^("RXN",0)),STAT=$P(NODE,U,6) | 
|---|
| 38 | I '$L(NODE) K ^TMP("PS",$J) Q  ;error | 
|---|
| 39 | I $O(^TMP("PS",$J,"DD",0)) D  ;Disp Drugs | 
|---|
| 40 | . N I,X,Y S X="Dispense Drugs (units/dose):  ",I=0 | 
|---|
| 41 | . F  S I=$O(^TMP("PS",$J,"DD",I)) Q:I'>0  S Y=$G(^(I,0)) S:Y CNT=CNT+1,@ORY@(CNT)=X_$$GET1^DIQ(50,+Y_",",.01)_" ("_$P(Y,U,2)_")" | 
|---|
| 42 | S:$P(NODE,U,9) CNT=CNT+1,@ORY@(CNT)="Total Dose:                   "_$P(NODE,U,9) | 
|---|
| 43 | M1 I TYPE="I" D  ;admin data | 
|---|
| 44 | . N I,X,Y I $O(^TMP("PS",$J,"B",0)) D | 
|---|
| 45 | .. S X="IV Print Name:                ",I=0 | 
|---|
| 46 | .. F  S I=$O(^TMP("PS",$J,"B",I)) Q:I<1  S Y=$G(^(I,0)) S:$L(Y) CNT=CNT+1,@ORY@(CNT)=X_$P(Y,U),X=$$REPEAT^XLFSTR(" ",30) I $L($P(Y,U,3)) S CNT=CNT+1,@ORY@(CNT)=X_" "_$P(Y,U,3) | 
|---|
| 47 | . S I=+$O(^TMP("PS",$J,"SCH",0)),X=$P($G(^(I,0)),U,2) | 
|---|
| 48 | . S:$L(X) CNT=CNT+1,@ORY@(CNT)="Schedule Type:                "_X | 
|---|
| 49 | . S X="Administration Times:         ",I=0 | 
|---|
| 50 | . F  S I=$O(^TMP("PS",$J,"ADM",I)) Q:I'>0  S Y=$G(^(I,0)) S:$L(Y) CNT=CNT+1,@ORY@(CNT)=X_Y,X=$$REPEAT^XLFSTR(" ",30) | 
|---|
| 51 | M2 I TYPE="O" D  ;fill history | 
|---|
| 52 | . N FILLD,X,Y,I | 
|---|
| 53 | . S:$P(NODE,U,12) CNT=CNT+1,@ORY@(CNT)="Last Filled:                  "_$$FMTE^XLFDT($P(NODE,U,12),2) | 
|---|
| 54 | . S CNT=CNT+1,@ORY@(CNT)="Refills Remaining:            "_$P(NODE,U,4) | 
|---|
| 55 | . I $P(RXN,U,6)!$G(^TMP("PS",$J,"REF",0)) S X="Filled:                       " D | 
|---|
| 56 | .. I $P(RXN,U,6) S FILLD=$P(RXN,U,6)_"^^^"_$P(RXN,U,7)_U_$P(RXN,U,3,4) D FILLED("R") | 
|---|
| 57 | .. S I=0 F  S I=$O(^TMP("PS",$J,"REF",I)) Q:I'>0  S FILLD=$G(^(I,0)) D FILLED("R") | 
|---|
| 58 | . I $G(^TMP("PS",$J,"PAR",0)) S I=0,X="Partial Fills:      " F  S I=$O(^TMP("PS",$J,"PAR",I)) Q:I'>0  S FILLD=$G(^(I,0)) D FILLED("P") | 
|---|
| 59 | . S:RXN CNT=CNT+1,@ORY@(CNT)="Prescription#:                "_$P(RXN,U) | 
|---|
| 60 | M3 S:$P(RXN,U,5) CNT=CNT+1,@ORY@(CNT)="Pharmacist:                   "_$P($G(^VA(200,+$P(RXN,U,5),0)),U) | 
|---|
| 61 | I $G(STAT)="ACTIVE/SUSP" S CNT=CNT+1,@ORY@(CNT)="Prescription Status:          "_STAT_" - Order is active. Fill or Refill has been requested." | 
|---|
| 62 | S:$P(NODE,U,13) CNT=CNT+1,@ORY@(CNT)="NOT TO BE GIVEN" K ^TMP("PS",$J) | 
|---|
| 63 | S CNT=CNT+1,@ORY@(CNT)="   " ;blank | 
|---|
| 64 | S OR5=$G(^OR(100,ORIFN,5)) I $L(OR5) D  ;SC data | 
|---|
| 65 | . N X,Y,I | 
|---|
| 66 | . S CNT=CNT+1,@ORY@(CNT)="   " ;blank line | 
|---|
| 67 | . S CNT=CNT+1,@ORY@(CNT)="First Party Pay Exemptions" | 
|---|
| 68 | . S X="For conditions related to:    " | 
|---|
| 69 | . F I=1:1:7 S Y=$P(OR5,U,I) I Y S CNT=CNT+1,@ORY@(CNT)=X_$$SC(I),X=$$REPEAT^XLFSTR(" ",30) | 
|---|
| 70 | Q | 
|---|
| 71 | ; | 
|---|
| 72 | BA ;Billing Aware data display | 
|---|
| 73 | N DXIEN,DXV,ICD9,ICDR,OCT,ORFMDAT | 
|---|
| 74 | S OCT=0,X="" | 
|---|
| 75 | ; Get the date of the order for CSV/CTD usage | 
|---|
| 76 | S ORFMDAT=$$ORFMDAT^ORWDBA3(ORIFN) | 
|---|
| 77 | ; $O through diagnoses for an order | 
|---|
| 78 | F  S OCT=$O(^OR(100,ORIFN,5.1,OCT)) Q:OCT'?1N.N  D | 
|---|
| 79 | . ; DXIEN=Dx IEN | 
|---|
| 80 | . S DXIEN=+^OR(100,ORIFN,5.1,OCT,0) | 
|---|
| 81 | . ; Get Dx record for date ORFMDAT | 
|---|
| 82 | . S ICDR=$$ICDDX^ICDCODE(DXIEN,ORFMDAT) | 
|---|
| 83 | . ; Get Dx verbiage and ICD code | 
|---|
| 84 | . S DXV=$P(ICDR,U,4),ICD9=$P(ICDR,U,2) | 
|---|
| 85 | . S X="               " | 
|---|
| 86 | . I OCT=1 D | 
|---|
| 87 | .. S CNT=CNT+1,@ORY@(CNT)="   " ;blank line | 
|---|
| 88 | .. S CNT=CNT+1,@ORY@(CNT)="Clinical Indicators" | 
|---|
| 89 | .. S X="Diagnosis of:  " | 
|---|
| 90 | . S X=X_ICD9_" - "_DXV,CNT=CNT+1,@ORY@(CNT)=X | 
|---|
| 91 | I OCT'="" D  ;if there are diagnoses show Treatment Factors | 
|---|
| 92 | . S X="For conditions related to:    " | 
|---|
| 93 | . F I=1:1:7 S Y=$P(^OR(100,ORIFN,5.2),U,I) I Y D | 
|---|
| 94 | .. S CNT=CNT+1,@ORY@(CNT)=X_$$SC(I),X=$$REPEAT^XLFSTR(" ",30) | 
|---|
| 95 | Q | 
|---|
| 96 | ; | 
|---|
| 97 | FILLED(TYPE) ; -- add FILLD data | 
|---|
| 98 | N Y S Y=$$FMTE^XLFDT($P(FILLD,U),2)_" ("_$$ROUTING($P(FILLD,U,5))_")" | 
|---|
| 99 | S:TYPE="R"&$P(FILLD,U,4) Y=Y_" released "_$$FMTE^XLFDT($P(FILLD,U,4),2) | 
|---|
| 100 | S:TYPE="P"&$P(FILLD,U,3) Y=Y_" Qty: "_$P(FILLD,U,3) | 
|---|
| 101 | S CNT=CNT+1,@ORY@(CNT)=X_Y,X=$$REPEAT^XLFSTR(" ",30) | 
|---|
| 102 | S:$L($P(FILLD,U,6)) CNT=CNT+1,@ORY@(CNT)=X_$P(FILLD,U,6) | 
|---|
| 103 | Q | 
|---|
| 104 | ; | 
|---|
| 105 | ROUTING(X) ; -- Returns external form | 
|---|
| 106 | N Y S Y=$S($G(X)="M":"Mail",$G(X)="W":"Window",1:$G(X)) | 
|---|
| 107 | Q Y | 
|---|
| 108 | ; | 
|---|
| 109 | SC(J) ; -- Returns name of SC field by piece number | 
|---|
| 110 | I '$G(J) Q "" | 
|---|
| 111 | I J=1 Q "SERVICE CONNECTED CONDITION" | 
|---|
| 112 | I J=2 Q "MILITARY SEXUAL TRAUMA" | 
|---|
| 113 | I J=3 Q "AGENT ORANGE EXPOSURE" | 
|---|
| 114 | I J=4 Q "IONIZING RADIATION EXPOSURE" | 
|---|
| 115 | I J=5 Q "ENVIRONMENTAL CONTAMINANTS" | 
|---|
| 116 | I J=6 Q "HEAD OR NECK CANCER" | 
|---|
| 117 | I J=7 Q "COMBAT VETERAN" | 
|---|
| 118 | Q "" | 
|---|