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

GMTSPSTN.m

Go to the documentation of this file.
  1. GMTSPSTN ;BIR/RMS - MED RECON TOOL #1 NO GLOSSARY (MED REC PROFILE) ; Jan 31, 2023@12:50:10
  1. ;;2.7;Health Summary;**94,127,131,132,135,115,145**;Oct 20, 1995;Build 191
  1. ;
  1. ; Reference to COVER^ORWPS in ICR #7392
  1. ; Reference to $$GET^ORRDI1,$$HAVEHDR^ORRDI1 in ICR #4659
  1. ; Reference to ^XTMP("ORRDI","PSOO" in ICR #4660
  1. ; Reference to ^XTMP("ORRDI","OUTAGE INFO" in ICR #5440
  1. ; Reference to ^PSOHCSUM in ICR #330
  1. ; Reference to $$ISCLIN^ORUTL1 in ICR #5691
  1. ; Reference to ^OR(100 in ICR #5771
  1. ; Reference to ^PS(51 in ICR #1980
  1. ; Reference to ^PS(53.1 in ICR #534
  1. ; Reference to TEXT^ORQ12 in ICR #4202
  1. ; Reference to $$PKGID^ORX8 in ICR #3071
  1. ; Reference to BCMALG^PSJUTL2 in ICR #5057
  1. ; Reference to OEL^PSOORRL in ICR #2400
  1. ; Reference to IMOOD^ORIMO in ICR #7389
  1. TOOL1 ;ENTRY POINT FOR HEALTH SUMMARY
  1. N ALPHA,DRUGNM,EXPDAYS,IND1,LIST,ORDER,PSNUM,RPC,RPCT,RPCNODE,SAVE,SAVERD
  1. D ADD^GMTSPSTR("GMTSPSTN")
  1. S IND1=7,EXPDAYS=90
  1. D COVER^ORWPS(.RPC,DFN)
  1. S RPCT=0 F S RPCT=$O(RPC(RPCT)) Q:'+RPCT D
  1. . S RPCNODE=RPC(RPCT)
  1. . S PSNUM=$P(RPCNODE,U)
  1. . S DRUGNM=$$UP^XLFSTR($P(RPCNODE,U,2))
  1. . S ORDER=+$P(RPCNODE,U,3)
  1. . Q:DRUGNM']""!(ORDER=0)!(PSNUM']"")
  1. . S SAVERD=9999999-$$LRD(+$G(^OR(100,ORDER,4)))
  1. . S SAVE(DRUGNM,SAVERD,ORDER,PSNUM)=""
  1. . Q:("ACTIVE^ACTIVE/SUSP^ACTIVE/PARKED^HOLD^PENDING^ON CALL"'[$P(RPCNODE,U,4))&($P(PSNUM,";")["N")
  1. . S ALPHA(1,DRUGNM,ORDER,PSNUM)=$P(RPCNODE,U,4)
  1. D ADDREM
  1. D HEADER
  1. S LIST=1 D OUTPUT
  1. D CKP Q:$D(GMTSQIT) W !
  1. D CKP Q:$D(GMTSQIT) W !,$$REPEAT^XLFSTR("-",IOM-8)
  1. D CKP Q:$D(GMTSQIT) W !,$$CJ^XLFSTR("SUPPLIES",IOM-8)
  1. D CKP Q:$D(GMTSQIT) W !,$$REPEAT^XLFSTR("-",IOM-8)
  1. D CKP Q:$D(GMTSQIT) W !
  1. S LIST=2 D OUTPUT
  1. Q
  1. ;
  1. ADDREM ;USES RDI - REMOTE DATA INTEROPERABILITY TO INCORPORATE OUTSIDE MEDS
  1. N DOWN,MED,RDI,RNAM,RNUM,STAT,ISSUE
  1. Q:'$$HAVEHDR^ORRDI1
  1. D Q:$G(DOWN) ;Check for outage of RDI
  1. . I $D(^XTMP("ORRDI","OUTAGE INFO","DOWN")) H $$GET^XPAR("ALL","ORRDI PING FREQ")/2
  1. . I $D(^XTMP("ORRDI","OUTAGE INFO","DOWN")) S DOWN=1 D Q:$D(GMTSQIT)
  1. .. D CKP Q:$D(GMTSQIT)
  1. .. W !,"WARNING: Connection to Remote Data Currently Down",!
  1. .. D CKP
  1. Q:$D(GMTSQIT)
  1. ;Get data for HFS file structure
  1. D SAVDEV^%ZISUTL("GMTSHFS")
  1. S RDI=$$GET^ORRDI1(DFN,"PSOO")
  1. D USE^%ZISUTL("GMTSHFS")
  1. D RMDEV^%ZISUTL("GMTSHFS")
  1. ;
  1. H 1 ;One extra second to allow ^XTMP replication across nodes
  1. I +RDI=-1 D Q:$D(GMTSQIT)
  1. . D CKP Q:$D(GMTSQIT)
  1. . W !,"WARNING: Connection to Remote Data Not Available",!
  1. . D CKP
  1. Q:'$D(^XTMP("ORRDI","PSOO",DFN))
  1. S MED=0 F S MED=$O(^XTMP("ORRDI","PSOO",DFN,MED)) Q:'+MED D
  1. . S STAT=$G(^XTMP("ORRDI","PSOO",DFN,MED,5,0))
  1. . Q:STAT']""
  1. . Q:"ACTIVE^SUSPENDED^HOLD"'[STAT
  1. . ; GMTS*2.7*135 Commented out the next line
  1. . ;Q:$G(^XTMP("ORRDI","PSOO",DFN,MED,7,0))']"" ;DoD:quit if there is no exp. date
  1. . D Q:ISSUE<$$FMADD^XLFDT(DT,-366) ;DoD: quit if ISSUE DATE > 1Y ago
  1. .. N %DT,X,Y
  1. .. S X=$G(^XTMP("ORRDI","PSOO",DFN,MED,8,0))
  1. .. D ^%DT
  1. .. S ISSUE=+Y
  1. . S RNAM=$G(^XTMP("ORRDI","PSOO",DFN,MED,2,0),"Unknown Drug")
  1. . S RNUM=$G(^XTMP("ORRDI","PSOO",DFN,MED,4,0))
  1. . Q:RNAM']""!(RNUM']"")
  1. . S ALPHA(1,RNAM,RNUM,MED_"X;R")=""
  1. Q
  1. N NVADT,REPEAT
  1. S NVADT=$$NVADT
  1. D TEXTPRNT("HEADTXT1")
  1. D CKP Q:$D(GMTSQIT)
  1. W !,"Non-VA Meds Last Documented On: "
  1. W $S(+NVADT:$$FMTE^XLFDT(NVADT,"D"),1:"** Data not found **")
  1. D CKP Q:$D(GMTSQIT)
  1. W !,$$REPEAT^XLFSTR("*",IOM-8)
  1. D CKP Q:$D(GMTSQIT) W !
  1. D CKP Q:$D(GMTSQIT)
  1. D TEXTPRNT("HEADTXT2")
  1. F REPEAT=1,2 D CKP Q:$D(GMTSQIT) W !
  1. D CKP Q:$D(GMTSQIT)
  1. W !,$$REPEAT^XLFSTR("-",IOM-8)
  1. D CKP Q:$D(GMTSQIT)
  1. Q
  1. TEXTPRNT(TEXTLOC) ;PRINT LINES OF TEXT FROM A LINE LABEL, ENDS WITH $$END
  1. N LINE,TLINE,LINETEXT
  1. S LINE=0 F S LINE=LINE+1,TLINE=TEXTLOC_"+"_LINE,LINETEXT=$T(@TLINE) S LINETEXT=$E(LINETEXT,4,$L(LINETEXT)) Q:LINETEXT="$$END" D
  1. . D CKP Q:$D(GMTSQIT)
  1. . W !,LINETEXT
  1. Q
  1. OUTPUT N DRUGNM,ORDER,PSNUM
  1. N PACK,PACKREF,SIGLINE,ORDNUM
  1. N LASTACT,OTLINE
  1. S DRUGNM="" F S DRUGNM=$O(ALPHA(LIST,DRUGNM)) Q:DRUGNM']"" D K SAVE(DRUGNM) Q:$D(GMTSQIT)
  1. . S ORDER="" F S ORDER=$O(ALPHA(LIST,DRUGNM,ORDER)) Q:ORDER']"" D Q:$D(GMTSQIT)
  1. .. S PSNUM="" F S PSNUM=$O(ALPHA(LIST,DRUGNM,ORDER,PSNUM)) Q:PSNUM']"" D Q:$D(GMTSQIT)
  1. ... S PACK=$P(PSNUM,";",2),ORDNUM=$P(PSNUM,";")
  1. ... I $$ISSUPPLY(,DRUGNM) S ALPHA(2,DRUGNM,ORDER,PSNUM)=ALPHA(LIST,DRUGNM,ORDER,PSNUM) Q
  1. ... I PACK="I" D INPDISP W ! Q:$D(GMTSQIT)
  1. ... I PACK="O" D OPTDISP W ! Q:$D(GMTSQIT)
  1. ... I PACK="R" D RDIDISP W ! Q:$D(GMTSQIT)
  1. Q
  1. INPDISP ;Display an Inpatient or Clinic Meds Entry
  1. N GMTSPSTN,OALINE,OR0,ORIG,ORVP,PSIFN,WLINE,DIWL,DIWR,DIWF,TYPE,X,LASTBCMA,STATUS
  1. N DDNUM,DRUGDISP,ORY
  1. K ^UTILITY($J,"W")
  1. D CKP Q:$D(GMTSQIT)
  1. S STATUS=$G(ALPHA(LIST,DRUGNM,ORDER,PSNUM))
  1. S STATUS=$S(STATUS["ACTIVE":"Active",STATUS["HOLD":"On Hold",STATUS["PENDING":"Pending",STATUS["DISCONTINUED":"Discontinued",1:STATUS)
  1. ;W !,$S($$ISCLIN^ORUTL1(ORDER):"CLIN ",1:"INPT ")_DRUGNM_" (Status="_STATUS_")"
  1. D DRUGDSP
  1. D IMOOD^ORIMO(.ORY,ORDER)
  1. W !,$S(ORY:"CLIN ",1:"INPT ")_DRUGDISP_" (Status="_STATUS_")"
  1. D CKP Q:$D(GMTSQIT)
  1. D DRGDSP2
  1. D TEXT^ORQ12(.GMTSPSTN,ORDER,80)
  1. S DIWL=IND1,DIWR=60,ORIG=$S(PSNUM["U":2,$$GET1^DIQ(53.1,+PSNUM,4,"I")="U":2,1:1)
  1. D:$E(GMTSPSTN(1),1,7)="Change "
  1. . F OALINE=2:1:$O(GMTSPSTN(":"),-1) I $E(GMTSPSTN(OALINE),1,3)="to " S ORIG=OALINE,$E(GMTSPSTN(OALINE),1,3)="" Q
  1. F OALINE=ORIG:1:$O(GMTSPSTN(":"),-1) D
  1. . S X=$$LSIG($G(GMTSPSTN(OALINE)))
  1. .; S X=$G(GMTSPSTN(OALINE))
  1. . D ^DIWP
  1. S WLINE=0 F S WLINE=$O(^UTILITY($J,"W",DIWL,WLINE)) Q:'+WLINE D Q:$D(GMTSQIT)
  1. . W !?DIWL,$G(^UTILITY($J,"W",DIWL,WLINE,0))
  1. . D CKP
  1. Q:$D(GMTSQIT)
  1. S LASTBCMA=$$BCMALG^PSJUTL2(DFN,ORDNUM)
  1. I LASTBCMA'="" W !?IND1,$$BCMALG^PSJUTL2(DFN,ORDNUM) D CKP Q:$D(GMTSQIT)
  1. Q
  1. ;
  1. DRUGDSP ; Get Medication with Dosage
  1. S PSIFN=$G(^OR(100,ORDER,4)),OR0=$G(^OR(100,ORDER,0))
  1. S TYPE=$$GETPKG(ORDER)
  1. S ORVP=$P(OR0,U,2) K ^TMP("PS",$J)
  1. D OEL^PSOORRL(+ORVP,PSIFN_";"_TYPE) ; IA 2400
  1. S DRUGDISP="" I $P($G(^TMP("PS",$J,"DD",1,0)),U,1)]"" D
  1. . S DRUGDISP=$$GET1^DIQ(50,+$P(^TMP("PS",$J,"DD",1,0),U,1)_",",.01)
  1. S DRUGDISP=$S(DRUGDISP]"":DRUGDISP,1:DRUGNM)
  1. Q
  1. ;
  1. DRGDSP2 ; Display other multiple information for medications/dosages
  1. S DDNUM=1 F S DDNUM=$O(^TMP("PS",$J,"DD",DDNUM)) Q:DDNUM="" D Q:$D(GMTSQIT)
  1. . S DRUGDISP=$$GET1^DIQ(50,+$P(^TMP("PS",$J,"DD",DDNUM,0),U,1)_",",.01)
  1. . I DRUGDISP]"" W !," ",DRUGDISP D CKP
  1. Q
  1. ;
  1. OPTDISP ;Display an Outpatient Prescription Entry
  1. N EXPDT,REFILLS,STATUS,DIWL,DIWR,PENDMED,GMTSPSTP,ORQLN,CANCELDT
  1. N ORDTYP,ORIGRX,QDFLAG
  1. K ^TMP($J,"GMTSPSTN"),^UTILITY($J,"W")
  1. S PACKREF=$$PKGID^ORX8(ORDER)
  1. I PACKREF["S" D Q
  1. . D PEN^PSO5241(DFN,"GMTSPSTN",+PACKREF,ORDER)
  1. . D CKP Q:$D(GMTSQIT)
  1. . W !,"OUTPT "_DRUGNM_" (Status = Pending)"
  1. . D CKP Q:$D(GMTSQIT)
  1. . D TEXT^ORQ12(.GMTSPSTP,ORDER,60)
  1. . ;p127 mwa stopped previous instructions from showing, stopped subscript error, and leading space error
  1. . S ORQLN=1 F S ORQLN=$O(GMTSPSTP(ORQLN)) Q:'+ORQLN Q:$E(GMTSPSTP(ORQLN),1,3+$L($P(DRUGNM," ")))=("to "_$P(DRUGNM," "))
  1. . S:ORQLN="" ORQLN=1
  1. . F S ORQLN=$O(GMTSPSTP(ORQLN)) Q:'+ORQLN Q:(GMTSPSTP(ORQLN)?." "1"Quantity: ".E) D
  1. .. W !?IND1,GMTSPSTP(ORQLN)
  1. .. D CKP Q:$D(GMTSQIT)
  1. . S ORIGRX=$P($G(^TMP($J,"GMTSPSTN",DFN,+PACKREF,22.1)),U,2)
  1. . S ORDTYP=$P($G(^TMP($J,"GMTSPSTN",DFN,+PACKREF,2)),U,1)
  1. . S QDFLAG=0 I ORIGRX]"",ORDTYP="RNW" D
  1. .. W !?10,"Renewed from Rx# "_ORIGRX
  1. .. D CKP Q:$D(GMTSQIT)
  1. .. W ?50,"Qty/Days Supply: "_$G(^TMP($J,"GMTSPSTN",DFN,+PACKREF,12))_"/"_$G(^TMP($J,"GMTSPSTN",DFN,+PACKREF,101))
  1. .. S QDFLAG=1
  1. . D CKP Q:$D(GMTSQIT)
  1. . W !?10,"Login Date: "_$$FMTE^XLFDT(+$G(^TMP($J,"GMTSPSTN",DFN,+PACKREF,15)),"2D")
  1. . D CKP Q:$D(GMTSQIT)
  1. . I 'QDFLAG D
  1. .. W ?50,"Qty/Days Supply: "_$G(^TMP($J,"GMTSPSTN",DFN,+PACKREF,12))_"/"_$G(^TMP($J,"GMTSPSTN",DFN,+PACKREF,101))
  1. .. D CKP Q:$D(GMTSQIT)
  1. . W:'QDFLAG ! W ?50,"Refills Ordered: "_$G(^TMP($J,"GMTSPSTN",DFN,+PACKREF,13))
  1. . D CKP Q:$D(GMTSQIT)
  1. . W !
  1. D RX^PSO52API(DFN,"GMTSPSTN",PACKREF)
  1. S EXPDT=$G(^TMP($J,"GMTSPSTN",DFN,PACKREF,26))
  1. S CANCELDT=$G(^TMP($J,"GMTSPSTN",DFN,PACKREF,26.1))
  1. S REFILLS=$G(^TMP($J,"GMTSPSTN",DFN,PACKREF,9))-$S($G(^TMP($J,"GMTSPSTN",DFN,PACKREF,"RF",0))>0:$G(^TMP($J,"GMTSPSTN",DFN,PACKREF,"RF",0)),1:0) ;need to make sure this is as accurate as the previous method in PSOQ0076
  1. S LASTREL=$$LRD(PACKREF)
  1. I $P(PSNUM,";")["N" G NVADISP
  1. I EXPDT Q:$$FMDIFF^XLFDT(DT,$P(EXPDT,U))>EXPDAYS
  1. I CANCELDT Q:$$FMDIFF^XLFDT(DT,$P(CANCELDT,U))>EXPDAYS
  1. S STATUS=$P($G(^TMP($J,"GMTSPSTN",DFN,PACKREF,100)),U,2)
  1. S STATUS=$S(STATUS["PARK":"Active/Parked",STATUS["ACTIVE":"Active",STATUS["SUSPENDED":"Active/Suspended",STATUS["HOLD":"On Hold",STATUS["DISCONTINUED":"Discontinued",1:STATUS)
  1. D CKP Q:$D(GMTSQIT)
  1. W !,"OUTPT "_DRUGNM_" (Status = "_STATUS_")"
  1. S DIWL=IND1,DIWR=72
  1. S SIGLINE=0 F S SIGLINE=$O(^TMP($J,"GMTSPSTN",DFN,PACKREF,"M",SIGLINE)) Q:'+SIGLINE D Q:$D(GMTSQIT)
  1. . S X=$G(^TMP($J,"GMTSPSTN",DFN,PACKREF,"M",SIGLINE,0))
  1. . D ^DIWP
  1. S WLINE=0 F S WLINE=$O(^UTILITY($J,"W",DIWL,WLINE)) Q:'+WLINE!($D(GMTSQIT)) D Q:$D(GMTSQIT)
  1. . W !?DIWL,$G(^UTILITY($J,"W",DIWL,WLINE,0))
  1. . D CKP
  1. Q:$D(GMTSQIT)
  1. W !?10,"Rx# "_$G(^TMP($J,"GMTSPSTN",DFN,PACKREF,.01))_" Last Released: "_$$FMTE^XLFDT(LASTREL,"2D"),?50,"Qty/Days Supply: "_$G(^TMP($J,"GMTSPSTN",DFN,PACKREF,7))_"/"_$G(^TMP($J,"GMTSPSTN",DFN,PACKREF,8)) D CKP Q:$D(GMTSQIT)
  1. W !?10,"Rx Expiration Date: ",$$FMTE^XLFDT(EXPDT,"2D"),?50,"Refills Remaining: ",REFILLS D CKP Q:$D(GMTSQIT)
  1. W:$P($G(^TMP($J,"GMTSPSTN",DFN,PACKREF,"IND")),U)]"" !?10,"Indication: "_$P(^TMP($J,"GMTSPSTN",DFN,PACKREF,"IND"),U)
  1. W ! D CKP
  1. Q
  1. ;
  1. ISSUPPLY(DRUG,DRUGNAME) ;
  1. ; Function returns '1' if drug is a SUPPLY, '0' otherwise
  1. Q:LIST=2 0 ;Only check during regular med list, not in supply list
  1. N VACLASS,DEAHDLG
  1. K ^TMP($J,"GMTSPSTND")
  1. I +$G(DRUG) D DATA^PSS50(DRUG,,,,,"GMTSPSTND")
  1. E D DATA^PSS50(,DRUGNAME,,,,"GMTSPSTND") S DRUG=$O(^TMP($J,"GMTSPSTND",0))
  1. I 'DRUG Q 0
  1. S VACLASS=$G(^TMP($J,"GMTSPSTND",DRUG,2))
  1. S DEAHDLG=$G(^TMP($J,"GMTSPSTND",DRUG,3))
  1. Q:$E(VACLASS,1,2)="XA" 1
  1. Q:$E(VACLASS,1,2)="XX" 1
  1. Q:(VACLASS="DX900")&(DEAHDLG["S") 1
  1. Q 0
  1. ;
  1. RDIDISP ;Display a Remote Meds Entry
  1. D CKP Q:$D(GMTSQIT)
  1. W !,"Remote ",?IND1,DRUGNM D CKP Q:$D(GMTSQIT)
  1. N STATUS,DIWL,DIWR,DIWF,X,WLINE
  1. K ^UTILITY($J,"W")
  1. S X=$G(^XTMP("ORRDI","PSOO",DFN,+ORDNUM,14,0)),DIWL=IND1,DIWR=60
  1. D ^DIWP
  1. S WLINE=0 F S WLINE=$O(^UTILITY($J,"W",DIWL,WLINE)) Q:'+WLINE D Q:$D(GMTSQIT)
  1. . D CKP Q:$D(GMTSQIT)
  1. . W !?DIWL,$G(^UTILITY($J,"W",DIWL,WLINE,0))
  1. D CKP Q:$D(GMTSQIT)
  1. S STATUS=$G(^XTMP("ORRDI","PSOO",DFN,+ORDNUM,5,0))
  1. S STATUS=$S(STATUS["ACTIVE":"Active",STATUS["SUSPENDED":"Active/Suspended",STATUS["HOLD":"Hold",1:"Unknown")
  1. W !?10,"Last Filled: "_$G(^XTMP("ORRDI","PSOO",DFN,+ORDNUM,9,0))_" ("_STATUS_" at "_$G(^XTMP("ORRDI","PSOO",DFN,+ORDNUM,1,0))_") "
  1. W !?10,"Rx Expiration Date: ",$G(^XTMP("ORRDI","PSOO",DFN,+ORDNUM,7,0)),?55,"Days Supply: "_$P($P($G(^XTMP("ORRDI","PSOO",DFN,+ORDNUM,6,0)),";",2),"D",2)
  1. Q
  1. ;
  1. NVADISP ;Display a Non-VA Medication Entry
  1. N GMTSPSTN,OALINE,ORIG,WLINE,DIWL,DIWR,DIWF,X
  1. K ^UTILITY($J,"W")
  1. D CKP Q:$D(GMTSQIT)
  1. W !,"Non-VA "_DRUGNM D CKP Q:$D(GMTSQIT)
  1. D TEXT^ORQ12(.GMTSPSTN,ORDER,80)
  1. S DIWL=IND1,DIWR=60,ORIG=2
  1. D:$E(GMTSPSTN(1),1,14)="Non-VA Change "
  1. . F OALINE=2:1:$O(GMTSPSTN(":"),-1) I $E(GMTSPSTN(OALINE),1,3)="to " S ORIG=OALINE+1 Q
  1. F OALINE=ORIG:1:$O(GMTSPSTN(":"),-1) D
  1. . S X=$$LSIG($G(GMTSPSTN(OALINE)))
  1. . D ^DIWP
  1. S WLINE=0 F S WLINE=$O(^UTILITY($J,"W",DIWL,WLINE)) Q:'+WLINE D Q:$D(GMTSQIT)
  1. . W !?DIWL,$G(^UTILITY($J,"W",DIWL,WLINE,0))
  1. . D CKP
  1. W ! D CKP Q:$D(GMTSQIT)
  1. Q
  1. D CKP Q:$D(GMTSQIT) W !
  1. D TEXTPRNT("FOOTER1")
  1. Q
  1. OPTFOOT ;Actual display for outpatient footer
  1. N LASTREL,FOOTTXT,DAYSSUPP,STATUS
  1. K ^TMP($J,"GMTSPSTN")
  1. S PACKREF=$$PKGID^ORX8(ORDER)
  1. S LASTREL=$$LRD(PACKREF)
  1. Q:LASTREL<$$FMADD^XLFDT(DT,-365)
  1. Q:$P(PSNUM,";")["N"
  1. D CKP Q:$D(GMTSQIT)
  1. W !,"OPT "_DRUGNM D CKP Q:$D(GMTSQIT)
  1. D RX^PSO52API(DFN,"GMTSPSTN",PACKREF)
  1. S STATUS=$P($G(^TMP($J,"GMTSPSTN",DFN,PACKREF,100)),U,2)
  1. S DAYSSUPP=$G(^TMP($J,"GMTSPSTN",DFN,PACKREF,8))
  1. S FOOTTXT="("_STATUS_"/"_DAYSSUPP_" Days Supply Last Released: "_$$FMTE^XLFDT(LASTREL,"2D")_")"
  1. W $$RJ^XLFSTR(FOOTTXT,74) D CKP Q:$D(GMTSQIT)
  1. S SIGLINE=0 F S SIGLINE=$O(^TMP($J,"GMTSPSTN",DFN,PACKREF,"M",SIGLINE)) Q:'+SIGLINE D Q:$D(GMTSQIT)
  1. . W !?IND1,$G(^TMP($J,"GMTSPSTN",DFN,PACKREF,"M",SIGLINE,0))
  1. . D CKP
  1. D CKP
  1. Q
  1. NVADT() ;Replaces call previously in ^PSOQCF04
  1. N NVAL,NVARR
  1. D ^PSOHCSUM
  1. Q:'$D(^TMP("PSOO",$J,"NVA")) ""
  1. S NVAL=0 F S NVAL=$O(^TMP("PSOO",$J,"NVA",NVAL)) Q:'+NVAL D
  1. . S NVADT=9999999-$P($G(^TMP("PSOO",$J,"NVA",NVAL,0)),"^",5)
  1. . S NVARR(NVADT)=""
  1. S NVADT=$O(NVARR(0)) Q:NVADT=9999999 ""
  1. Q 9999999-NVADT
  1. LSIG(SIG) ;Expand a SIG
  1. N P,SGY,X,%
  1. S SGY="" F P=1:1:$L(SIG," ") S X=$P(SIG," ",P) D:X]"" ;
  1. .I $D(^PS(51,"A",X)) S %=^(X),X=$P(%,"^") I $P(%,"^",2)]"" S Y=$P(SIG," ",P-1),Y=$E(Y,$L(Y)) S:Y>1 X=$P(%,"^",2)
  1. .S SGY=SGY_X_" "
  1. Q SGY
  1. LRD(PACKREF) ;Calculate LAST RELEASE DATE as latest of original + refill relDates
  1. N RELDT,REFDT,CTR,ANS
  1. K ^TMP($J,"GMTSLRD")
  1. S ANS=""
  1. D RX^PSO52API(DFN,"GMTSLRD",PACKREF,,"3,R")
  1. S RELDT=$G(^TMP($J,"GMTSLRD",DFN,PACKREF,31))
  1. S ANS=RELDT
  1. S CTR=0 F S CTR=$O(^TMP($J,"GMTSLRD",DFN,PACKREF,"RF",CTR)) Q:'+CTR D ;
  1. . S REFDT=$G(^TMP($J,"GMTSLRD",DFN,PACKREF,"RF",CTR,17))
  1. . I REFDT>ANS S ANS=REFDT
  1. K ^TMP($J,"GMTSLRD")
  1. Q ANS
  1. ;
  1. CKP D CKP^GMTSUP Q
  1. ;
  1. GETPKG(ORDER) ;GET PACKAGE TYPE, added by GMTS*2.7*132
  1. N PKGIEN,PKGTYPE
  1. S PKGIEN=$$GET1^DIQ(100,ORDER_",",12,"I")
  1. S PKGTYPE=$$GET1^DIQ(9.4,PKGIEN_",",.01,"I")
  1. I PKGTYPE="INPATIENT MEDICATIONS" Q "I"
  1. I PKGTYPE="OUTPATIENT PHARMACY" Q "O"
  1. Q $$GET1^DIQ(100,ORDER_",",10,"I")
  1. HEADTXT1 ;;
  1. ;;INCLUDED IN THIS LIST: Alphabetical list of active outpatient
  1. ;;prescriptions dispensed from this VA (local) and dispensed from another
  1. ;;VA or DoD facility (remote) as well as inpatient orders (local pending and
  1. ;;active), local clinic medications, locally documented non-VA medications,
  1. ;;and local prescriptions that have expired or been discontinued in the past
  1. ;;90 days.
  1. ;;
  1. ;;$$END
  1. HEADTXT2 ;;
  1. ;;***NOTE*** The display of VA prescriptions dispensed from another VA or
  1. ;;DoD facility (remote) is limited to active outpatient prescription entries
  1. ;;matched to National Drug File at the originating site and may not include
  1. ;;some items such as investigational drugs, compounds, etc.
  1. ;;
  1. ;;NOT INCLUDED IN THIS LIST: Medications self-entered by the patient into
  1. ;;personal health records (i.e. My HealtheVet) are NOT included in this
  1. ;;list. Non-VA medications documented outside this VA, remote inpatient
  1. ;;orders (regardless of status) and remote clinic medications are NOT
  1. ;;included in this list. The patient and provider must always discuss
  1. ;;medications the patient is taking, regardless of where the medication was
  1. ;;dispensed or obtained.
  1. ;;$$END