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

PSXBPSMS.m

Go to the documentation of this file.
  1. PSXBPSMS ;BIRM/BSR - BPS (ECME) Utilities ;10/29/98 2:13 PM
  1. ;;2.0;CMOP;**48**;11 Apr 97
  1. ;Reference to $$RXFLDT^PSOBPSUT supported by IA 4701
  1. ;
  1. EN ;Main entry point.
  1. N EMCNT,DFN,ORCNT,PATCNT,DIV,RX,DFN,SSN,PTLST,VADM
  1. K ^TMP("PSXEPHOUT",$J)
  1. S DIV="",(EMCNT,ORCNT,PATCNT)=0
  1. F S DIV=$O(^TMP("PSXEPHIN",$J,DIV)) Q:DIV="" D
  1. .D HEADER(DIV)
  1. .S RX="" F S RX=$O(^TMP("PSXEPHIN",$J,DIV,RX)) Q:RX="" D
  1. ..S DFN=+$P(^PSRX(RX,0),"^",2) D DEM^VADPT
  1. ..S SSN=$E($P(VADM(2),U),6,9),PATNM=(VADM(1))
  1. ..S ORCNT=$G(ORCNT)+1 D PATCNT(PATNM_SSN)
  1. ..D FORMAT
  1. .D FOOTER(DIV)
  1. D MAIL,CLEAN
  1. Q
  1. ;
  1. ; Format Row
  1. FORMAT ;
  1. N LTXT,RFL
  1. S RFL=+$G(^TMP("PSXEPHIN",$J,DIV,RX)),LTXT=$$GET1^DIQ(52,RX,.01)_"/"_RFL
  1. S $E(LTXT,15)=$E(PATNM,1,18)_"("_SSN_")",$E(LTXT,40)=$E($$GET1^DIQ(52,RX,6),1,25)
  1. I $$PATCH^XPDUTL("PSO*7.0*148") S $E(LTXT,66)=$$FMTE^XLFDT($$RXFLDT^PSOBPSUT(RX,RFL))
  1. D STORELN(LTXT)
  1. Q
  1. ;
  1. ;Count patients.
  1. PATCNT(NAMSSN) ;
  1. I '$D(PTLST(NAMSSN)) D
  1. .S PTLST(NAMSSN)=""
  1. .S PATCNT=$G(PATCNT)+1
  1. Q
  1. ;
  1. ;Build header.
  1. D STORELN("Division: "_$$GET1^DIQ(59,DIV,.01))
  1. D STORELN($TR($J("",79)," ","-"))
  1. D STORELN("RX#/Fill PATIENT(LAST4SSN) DRUG FILL DATE")
  1. D STORELN($TR($J("",79)," ","-"))
  1. Q
  1. ;
  1. ;Output patient count & prescriptions count & division number
  1. D STORELN(" ")
  1. D STORELN("Total "_$$GET1^DIQ(59,DIVN,.01)_": "_PATCNT_" Patients and "_ORCNT_" Prescriptions.")
  1. D STORELN(" ")
  1. K PTLST S (ORCNT,PATCNT)=0
  1. Q
  1. ;
  1. ;Build and Send email to provider.
  1. MAIL ;
  1. N PSBMSG,M1,Y,USER,XMTEXT,XMDUZ,XMSUB,XMY
  1. S PSBMSG(1)="The prescriptions listed below are third party electronically billable. They"
  1. S PSBMSG(2)="have not been transmitted to CMOP because they have been submitted to"
  1. S PSBMSG(3)="third party payer but we have not received a response regarding these"
  1. S PSBMSG(4)="prescriptions yet. The prescriptions will remain in the CMOP queue to be"
  1. S PSBMSG(5)="transmitted in the next transmission if the response from the third party"
  1. S PSBMSG(6)="payer has been received."
  1. S PSBMSG(7)=" "
  1. S M1=8
  1. S Y="" F S Y=$O(^TMP("PSXEPHOUT",$J,"M",Y)) Q:Y="" D
  1. .S PSBMSG(M1)=$P(^TMP("PSXEPHOUT",$J,"M",Y),"^"),M1=M1+1
  1. ; Send email to all users who hold a security key
  1. S USER=0
  1. I $D(^XUSEC("PSXMAIL")) D
  1. .F S USER=$O(^XUSEC("PSXMAIL",USER)) Q:'USER S XMY(USER)=""
  1. E D
  1. .F S USER=$O(^XUSEC("PSXCMOPMGR",USER)) Q:'USER S XMY(USER)=""
  1. ;
  1. S XMTEXT="PSBMSG(",XMSUB="ePharmacy - CMOP Not TRANSMITTED Rx List"
  1. S XMDUZ=.5
  1. D ^XMD
  1. Q
  1. ;
  1. ;Store E-mail line for later use.
  1. STORELN(LINE) ;
  1. S EMCNT=EMCNT+1
  1. S ^TMP("PSXEPHOUT",$J,"M",EMCNT)=LINE
  1. Q
  1. ;
  1. ;Clean all remaining arrays and variables.
  1. CLEAN ;
  1. K ^TMP("PSXEPHOUT",$J),^TMP("PSXEPHIN",$J)
  1. Q