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

ORDV06C.m

Go to the documentation of this file.
  1. ORDV06C ;ISP/RFR - OE/RR REPORT EXTRACTS ;08/22/2017 13:39
  1. ;;3.0;ORDER ENTRY RESULTS REPORTING;**377**;Dec 17, 1997;Build 582
  1. Q
  1. RXHIRISK(ROOT,ORDFN,OREXT,ORALPHA,OROMEGA,ORDTRANG,ORREMOTE,ORMAX,ISFHIE) ;Medications with
  1. ;Reproductive Risk Report
  1. Q:'$L(OREXT)
  1. N GO
  1. S GO=$P(OREXT,";",7)_U_$P(OREXT,";",8)
  1. Q:'$L($T(@GO))
  1. D FORMAT
  1. Q
  1. GETDATA ;RETRIEVE ALL NECESSARY DATA FOR REPORT
  1. N ORBEG,OREND,ORREMIND,INDEX,PARAM,RETURN,OCINAME,ORIEN,NODE
  1. K ^TMP("ORPS",$J)
  1. S ORBEG=$S($G(ORALPHA):ORALPHA,1:$$DT^ORWPS("T")),OREND=$S($G(OROMEGA)>0:OROMEGA,1:$$DT^ORWPS("T"))
  1. S ORREMIND="VA-WH POTENTIALLY UNSAFE MEDICATIONS REPORT - COHORT",ORREMIND("PRINT")="WH POTENTIALLY UNSAFE MEDS REPORT"
  1. D MAINDF^PXRM(DFN,ORREMIND,0,ORBEG)
  1. S ORREMIND("IEN")=+$O(^TMP("PXRHM",$J,0))
  1. I $P($G(^TMP("PXRHM",$J,ORREMIND("IEN"),ORREMIND("PRINT"))),U)'="DUE NOW" G GEXIT
  1. S PARAM("SUB")="ORWHRMR",PARAM("DFN")=DFN
  1. S PARAM("ROC DISPLAY GROUPS","PHARMACY")="",NODE="GROUPS"
  1. I '(($P(ORBEG,".")=$P(OREND,"."))&($P(ORBEG,".")=$$DT^ORWPS("T"))) D
  1. .S PARAM("ROC","VA-WH HIRISK IMAGING AGENTS GROUP")="",PARAM("ROC","VA-WH HIRISK MEDICATIONS (EXTREME RISK) GROUP")=""
  1. .S PARAM("ROC","VA-WH HIRISK MEDICATIONS (LACTATION LEVEL 1) GROUP")="",PARAM("ROC","VA-WH HIRISK MEDICATIONS (LACTATION LEVEL 2) GROUP")=""
  1. .S PARAM("ROC","VA-WH HIRISK MEDICATIONS (MOD/HIGH RISK DURING PREGNANCY) GROUP")=""
  1. .S PARAM("ROC RETURN TYPE","GROUPS")="",PARAM("ROC ORDERED WITHIN")=""
  1. .S PARAM("ROC STATUS","*")=""
  1. .S PARAM("ROC DISPLAY GROUPS","PHARMACY","START")=ORBEG,PARAM("ROC DISPLAY GROUPS","PHARMACY","STOP")=OREND
  1. I $P(ORBEG,".")=$P(OREND,"."),$P(ORBEG,".")=$$DT^ORWPS("T") D
  1. .S PARAM("ROC","ALL")="" ;,PARAM("ROC EVAL DATES")=DT
  1. .S PARAM("ROC STATUS","HOLD")="",PARAM("ROC STATUS","FLAGGED")="",PARAM("ROC STATUS","PENDING")=""
  1. .S PARAM("ROC STATUS","ACTIVE")="",PARAM("ROC STATUS","DELAYED")="",PARAM("ROC STATUS","RENEWED")=""
  1. .S PARAM("ROC RETURN TYPE","GROUPS")="",PARAM("ROC RETURN TYPE","RULES")=""
  1. D EN^PXRMGEV(.RETURN,.PARAM)
  1. I $P(@RETURN@(0),U)<1 G GEXIT
  1. S ORIEN=0 F S ORIEN=$O(^TMP($J,"ORWHRMR",ORIEN)) Q:'+ORIEN D
  1. .N PSIFN
  1. .S PSIFN=$G(^OR(100,ORIEN,4)) Q:'+PSIFN
  1. .S INDEX=1+$G(INDEX),OCINAME=""
  1. .F S OCINAME=$O(^TMP($J,"ORWHRMR",ORIEN,NODE,OCINAME)) Q:OCINAME="" I $E(OCINAME,1,13)="VA-WH HIRISK " D
  1. ..I $D(PARAM("ROC RETURN TYPE","RULES")),'$D(^TMP($J,"ORWHRMR",ORIEN,"RULES")) Q
  1. ..I '$D(^TMP("ORPS",$J,INDEX)) D
  1. ...N TYPE,NODE,TO
  1. ...S TYPE=$P($G(^OR(100,ORIEN,0)),U,12),TO=$P($G(^ORD(100.98,+$P($G(^OR(100,ORIEN,0)),U,11),0)),U)
  1. ...I TYPE="O",TO["CLINIC" S TYPE="I"
  1. ...S:TYPE="O" PSIFN=$TR(PSIFN,"S","P")_$S(PSIFN?1.N:"R",1:"")
  1. ...S PSIFN=PSIFN_";"_TYPE
  1. ...D OEL^PSOORRL(DFN,PSIFN) ;DBIA 2400
  1. ...I '$D(^TMP("PS",$J)) Q
  1. ...S TYPE=$S(TYPE="O":"OP",1:"UD")
  1. ...I TYPE="OP",PSIFN["N" S TYPE="NV"
  1. ...I ($O(^TMP("PS",$J,"A",0))>0)!($O(^TMP("PS",$J,"B",0))>0) S TYPE="IV"
  1. ...S NODE=$G(^TMP("PS",$J,0))
  1. ...S ^TMP("ORPS",$J,INDEX)=TYPE_U_PSIFN_U_$P(NODE,U)_U_$P(NODE,U,3)_U_$P(NODE,U,5,6)_U_$P(NODE,U,12)
  1. ...S:TYPE="NV" $P(^TMP("ORPS",$J,INDEX),U,5)=$P($G(^OR(100,ORIEN,0)),U,8)
  1. ...I $P(^TMP("ORPS",$J,INDEX),U,6)="PENDING" S $P(^(INDEX),U,5)=""
  1. ..Q:'$D(^TMP("ORPS",$J,INDEX))
  1. ..I OCINAME'["(LACT" S $P(^TMP("ORPS",$J,INDEX),U,8)="*"
  1. ..I OCINAME["(LACT" S $P(^TMP("ORPS",$J,INDEX),U,9)="*"
  1. GEXIT ;CLEAN-UP FOR GETDATA
  1. K ^TMP("PXRHM",$J),^TMP("PS",$J),^TMP($J,"ORWHRMR")
  1. Q
  1. FORMAT ;FORMAT DATA FOR RETURN TO CPRS
  1. K ^TMP("ORPS",$J)
  1. D @GO
  1. N ORSITE,J,RT,X,ORITM
  1. S ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3)
  1. S ORITM=0 F S ORITM=$O(^TMP("ORPS",$J,ORITM)) Q:'+ORITM D
  1. .S ^TMP("ORDATA",$J,ORITM,"WP",1)="1^"_ORSITE ;Station ID
  1. .S ^TMP("ORDATA",$J,ORITM,"WP",2)="2^"_$P(^TMP("ORPS",$J,ORITM),U,3) ;Medication Name
  1. .S ^TMP("ORDATA",$J,ORITM,"WP",3)="3^"_$P(^TMP("ORPS",$J,ORITM),U,6) ;Status
  1. .S ^TMP("ORDATA",$J,ORITM,"WP",4)="4^"_$S($P($P(^TMP("ORPS",$J,ORITM),U,2),";",2)="I":"IN",1:"OUT") ;In/OutPatient
  1. .S ^TMP("ORDATA",$J,ORITM,"WP",5)="5^"_$S($P(^TMP("ORPS",$J,ORITM),U)="NV":"NonVAMed",1:"RX") ;Type: RX or NonVA Med
  1. .S ^TMP("ORDATA",$J,ORITM,"WP",6)="6^"_$P(^TMP("ORPS",$J,ORITM),U,8) ;Teratogenic
  1. .S ^TMP("ORDATA",$J,ORITM,"WP",7)="7^"_$P(^TMP("ORPS",$J,ORITM),U,9) ;Lactation
  1. .S ^TMP("ORDATA",$J,ORITM,"WP",8)="8^"_$$DATE^ORDVU($P(^TMP("ORPS",$J,ORITM),U,5)) ;Start Date
  1. .S ^TMP("ORDATA",$J,ORITM,"WP",9)="9^"_$$DATE^ORDVU($P(^TMP("ORPS",$J,ORITM),U,4)) ;Stop Date
  1. .S ^TMP("ORDATA",$J,ORITM,"WP",10)="10^"_$$DATE^ORDVU($P(^TMP("ORPS",$J,ORITM),U,7)) ;Last Fill Date
  1. .D DETAIL^ORWPS(.RT,DFN,$P(^TMP("ORPS",$J,ORITM),U,2))
  1. .S J=0 F S J=$O(^TMP("ORXPND",$J,J)) Q:'J S X=^(J,0),^TMP("ORDATA",$J,ORITM,"WP",11,J)="11^"_X ;Details from Order
  1. .K ^TMP("ORXPND",$J)
  1. .S ^TMP("ORDATA",$J,ORITM,"WP",12)="12^[+] " ;flag for detail
  1. K ^TMP("ORPS",$J)
  1. S ROOT=$NA(^TMP("ORDATA",$J))
  1. Q