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

ORWDPLM1.m

Go to the documentation of this file.
  1. ORWDPLM1 ;PBM/HINES/RMS - DISPLAY LAB DATA IN CPRS ORDERING DIALOG ; 21 Dec 2016 4:46 PM
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**420**;;Build 7
  1. SL Q:'$$GET^XPAR("ALL","OR CPRS LAB DISPLAY ENABLED") ; param off? - skip
  1. N DIC,X,Y,ORL50,ORL507,ORL2,ORLNODE,ORLRSLT,FOUND,ORLCRCL,REFRANGE
  1. S ORL2=+$G(ORVP) I ORL2 G SL2
  1. S X=$TR($G(VA("PID")),"-"),DIC=2,DIC(0)="M"
  1. D ^DIC
  1. Q:Y=-1
  1. S ORL2=+Y
  1. SL2 S ORL507=+$P($G(^ORD(101.43,OI,0)),U,2) Q:'+ORL507
  1. S ORL50=0 F S ORL50=$O(^PSDRUG("ASP",ORL507,ORL50)) Q:'+ORL50!($G(FOUND)) D
  1. . S ORLNODE=$G(^PSDRUG(ORL50,"CLOZ")) Q:'+ORLNODE
  1. . I +ORLNODE,$$SCRTEST(+ORLNODE) S ORLRSLT=$$GETSCR(ORL2) S ILST=ILST+1,LST(ILST)="tLAST "_$$GET1^DIQ(60,+ORLNODE,.01)_": "_$P(ORLRSLT,U)
  1. . I +ORLNODE,'$$SCRTEST(+ORLNODE) S ORLRSLT=$$GETLAB(ORL2,+ORLNODE,+$P(ORLNODE,U,3),$P(ORLNODE,U,2)) S ILST=ILST+1,LST(ILST)="tLAST "_$$GET1^DIQ(60,+ORLNODE,.01)_": "_$P(ORLRSLT,U)
  1. . I +$P(ORLRSLT,U,2) S LST(ILST)=LST(ILST)_" "_$P(ORLRSLT,U,4)_" ("_$$FMTE^XLFDT($P(ORLRSLT,U,2))_")"
  1. . I $P(ORLRSLT,U,5)]"" S ILST=ILST+1,LST(ILST)="tREFERENCE RANGE: "_$P(ORLRSLT,U,5)_" "_$P(ORLRSLT,U,4)
  1. . I +$P(ORLRSLT,U,2) I $$SCRTEST(+ORLNODE) S ORLCRCL=$$CRCL^PSOORUT2(ORL2) I +$P(ORLCRCL,U,2) S ILST=ILST+1,LST(ILST)="tEstimated Creatinine Clearance: "_$P(ORLCRCL,U,2)_" mL/min"
  1. . S FOUND=1
  1. Q
  1. ;
  1. GETSCR(DFN) ;New PBM/RMS 1-29-2016
  1. ;If lab test is CREATININE, get results using national term
  1. N OCXTL,OCXTLS,SCR,OCXT,OCXTS,SCRD,PSCR,SCRV
  1. S OCXTL="" Q:'$$TERMLKUP^ORB31(.OCXTL,"SERUM CREATININE") "No mapped creatinine lab test available"
  1. S OCXTLS="" Q:'$$TERMLKUP^ORB31(.OCXTLS,"SERUM SPECIMEN") "No mapped serum specimen found"
  1. S PSCR="^^^^^^0"
  1. S SCR="",OCXT=0 F S OCXT=$O(OCXTL(OCXT)) Q:'OCXT D
  1. .S OCXTS=0 F S OCXTS=$O(OCXTLS(OCXTS)) Q:'OCXTS D
  1. ..S SCR=$$LOCL^ORQQLR1(DFN,$P(OCXTL(OCXT),U),$P(OCXTLS(OCXTS),U))
  1. ..I $P(SCR,U,7)>$P(PSCR,U,7) S PSCR=SCR
  1. S SCR=PSCR,SCRV=$P(SCR,U,3) Q:+$G(SCRV)<.01 "NONE FOUND IN LAST "_$S(+$P(ORLNODE,U,2):$P(ORLNODE,U,2),1:365)_" DAYS"
  1. S SCRD=$P(SCR,U,7) Q:'$L(SCRD) "NONE FOUND IN LAST "_$S(+$P(ORLNODE,U,2):$P(ORLNODE,U,2),1:365)_" DAYS"
  1. I $$FMADD^XLFDT(DT,-$P(ORLNODE,U,2))>SCRD Q "NONE FOUND IN LAST "_$S(+$P(ORLNODE,U,2):$P(ORLNODE,U,2),1:365)_" DAYS" ;Result Before Max Days
  1. Q $P(SCR,U,3)_U_$P(SCR,U,7)_U_$P(SCR,U,2)_U_$P(SCR,U,4)_U_$P(SCR,U,6)
  1. ;
  1. SCRTEST(LAB60) ;New PBM/RMS 1-29-2016
  1. ;Function to check if drug-associated lab test is CREATININE
  1. N TERM,IEN,OCXTL,ORLSCR
  1. S TERM=$$TERMLKUP^ORB31(.OCXTL,"SERUM CREATININE")
  1. S IEN=0
  1. F S IEN=$O(OCXTL(IEN)) Q:'+IEN S ORLSCR(+$G(OCXTL(IEN)))=""
  1. Q $D(ORLSCR(LAB60))
  1. ;
  1. GETLAB(DFN,TEST,SPEC,MDAYS) ;CUSTOM LAB LOOKUP API
  1. N ORLBDT,TESTNAME,RESULT,LNAME,LDATE,UNITS
  1. N X,X1,X2
  1. Q:'+$G(TEST) ""
  1. Q:'+$G(DFN) ""
  1. S TESTNAME=$P($G(^LAB(60,TEST,0)),U)
  1. S MDAYS=$G(MDAYS,365)
  1. S X1=DT,X2=-$G(MDAYS) D C^%DTC
  1. S ORLBDT=$S(X<DT:X,1:0)
  1. D RR^LR7OR1(DFN,,ORLBDT,DT,,TEST,,1,$G(SPEC))
  1. D FORMAT
  1. I $G(RESULT)']"" Q "NONE FOUND IN LAST "_+$S(+MDAYS:MDAYS,1:365)_" DAYS"_U_U_TESTNAME
  1. Q RESULT_U_LDATE_U_LNAME_U_UNITS_U_REFRANGE
  1. FORMAT N IDT,LOC,NODE
  1. S IDT=0 F S IDT=$O(^TMP("LRRR",$J,DFN,"CH",IDT)) Q:'+IDT D
  1. . S LOC=0 F S LOC=$O(^TMP("LRRR",$J,DFN,"CH",IDT,LOC)) Q:'+LOC D
  1. .. S NODE=$G(^TMP("LRRR",$J,DFN,"CH",IDT,LOC))
  1. .. S RESULT=$P(NODE,U,2)
  1. .. S UNITS=$P(NODE,U,4)
  1. .. S LNAME=$P(NODE,U,10)
  1. .. S REFRANGE=$P(NODE,U,5)
  1. .. I LNAME']"" S LNAME=$P(NODE,U,15)
  1. .. S LDATE=9999999-IDT
  1. Q