| [613] | 1 | PSXBPSMS ;BIRM/BSR - BPS (ECME) Utilities ;10/29/98  2:13 PM
 | 
|---|
 | 2 |  ;;2.0;CMOP;**48**;11 Apr 97
 | 
|---|
 | 3 |  ;Reference to $$RXFLDT^PSOBPSUT supported by IA 4701
 | 
|---|
 | 4 |  ;
 | 
|---|
 | 5 | EN ;Main entry point.
 | 
|---|
 | 6 |  N EMCNT,DFN,ORCNT,PATCNT,DIV,RX,DFN,SSN,PTLST,VADM
 | 
|---|
 | 7 |  K ^TMP("PSXEPHOUT",$J)
 | 
|---|
 | 8 |  S DIV="",(EMCNT,ORCNT,PATCNT)=0
 | 
|---|
 | 9 |  F  S DIV=$O(^TMP("PSXEPHIN",$J,DIV))  Q:DIV=""  D
 | 
|---|
 | 10 |  .D HEADER(DIV)
 | 
|---|
 | 11 |  .S RX="" F  S RX=$O(^TMP("PSXEPHIN",$J,DIV,RX)) Q:RX=""  D
 | 
|---|
 | 12 |  ..S DFN=+$P(^PSRX(RX,0),"^",2) D DEM^VADPT
 | 
|---|
 | 13 |  ..S SSN=$E($P(VADM(2),U),6,9),PATNM=(VADM(1))
 | 
|---|
 | 14 |  ..S ORCNT=$G(ORCNT)+1 D PATCNT(PATNM_SSN)
 | 
|---|
 | 15 |  ..D FORMAT
 | 
|---|
 | 16 |  .D FOOTER(DIV)
 | 
|---|
 | 17 |  D MAIL,CLEAN
 | 
|---|
 | 18 |  Q
 | 
|---|
 | 19 |  ;
 | 
|---|
 | 20 |  ; Format Row
 | 
|---|
 | 21 | FORMAT ;
 | 
|---|
 | 22 |  N LTXT,RFL
 | 
|---|
 | 23 |  S RFL=+$G(^TMP("PSXEPHIN",$J,DIV,RX)),LTXT=$$GET1^DIQ(52,RX,.01)_"/"_RFL
 | 
|---|
 | 24 |  S $E(LTXT,15)=$E(PATNM,1,18)_"("_SSN_")",$E(LTXT,40)=$E($$GET1^DIQ(52,RX,6),1,25)
 | 
|---|
 | 25 |  I $$PATCH^XPDUTL("PSO*7.0*148") S $E(LTXT,66)=$$FMTE^XLFDT($$RXFLDT^PSOBPSUT(RX,RFL))
 | 
|---|
 | 26 |  D STORELN(LTXT)
 | 
|---|
 | 27 |  Q
 | 
|---|
 | 28 |  ;
 | 
|---|
 | 29 |  ;Count patients.
 | 
|---|
 | 30 | PATCNT(NAMSSN) ;
 | 
|---|
 | 31 |  I '$D(PTLST(NAMSSN)) D
 | 
|---|
 | 32 |  .S PTLST(NAMSSN)=""
 | 
|---|
 | 33 |  .S PATCNT=$G(PATCNT)+1
 | 
|---|
 | 34 |  Q
 | 
|---|
 | 35 |  ;
 | 
|---|
 | 36 |  ;Build header.
 | 
|---|
 | 37 | HEADER(DIV) ;
 | 
|---|
 | 38 |  D STORELN("Division: "_$$GET1^DIQ(59,DIV,.01))
 | 
|---|
 | 39 |  D STORELN($TR($J("",79)," ","-"))
 | 
|---|
 | 40 |  D STORELN("RX#/Fill      PATIENT(LAST4SSN)        DRUG                      FILL DATE")
 | 
|---|
 | 41 |  D STORELN($TR($J("",79)," ","-"))
 | 
|---|
 | 42 |  Q
 | 
|---|
 | 43 |  ;       
 | 
|---|
 | 44 |  ;Output patient count & prescriptions count & division number
 | 
|---|
 | 45 | FOOTER(DIVN) ;
 | 
|---|
 | 46 |  D STORELN(" ")
 | 
|---|
 | 47 |  D STORELN("Total "_$$GET1^DIQ(59,DIVN,.01)_": "_PATCNT_" Patients and "_ORCNT_" Prescriptions.")
 | 
|---|
 | 48 |  D STORELN(" ")
 | 
|---|
 | 49 |  K PTLST S (ORCNT,PATCNT)=0
 | 
|---|
 | 50 |  Q
 | 
|---|
 | 51 |  ;
 | 
|---|
 | 52 |  ;Build and Send email to provider.
 | 
|---|
 | 53 | MAIL ;
 | 
|---|
 | 54 |  N PSBMSG,M1,Y,USER,XMTEXT,XMDUZ,XMSUB,XMY
 | 
|---|
 | 55 |  S PSBMSG(1)="The prescriptions listed below are third party electronically billable. They"
 | 
|---|
 | 56 |  S PSBMSG(2)="have not been transmitted to CMOP because they have been submitted to"
 | 
|---|
 | 57 |  S PSBMSG(3)="third party payer but we have not received a response regarding these"
 | 
|---|
 | 58 |  S PSBMSG(4)="prescriptions yet. The prescriptions will remain in the CMOP queue to be"
 | 
|---|
 | 59 |  S PSBMSG(5)="transmitted in the next transmission if the response from the third party"
 | 
|---|
 | 60 |  S PSBMSG(6)="payer has been received."
 | 
|---|
 | 61 |  S PSBMSG(7)=" "
 | 
|---|
 | 62 |  S M1=8
 | 
|---|
 | 63 |  S Y="" F  S Y=$O(^TMP("PSXEPHOUT",$J,"M",Y)) Q:Y=""  D
 | 
|---|
 | 64 |  .S PSBMSG(M1)=$P(^TMP("PSXEPHOUT",$J,"M",Y),"^"),M1=M1+1
 | 
|---|
 | 65 |  ; Send email to all users who hold a security key
 | 
|---|
 | 66 |  S USER=0
 | 
|---|
 | 67 |  I $D(^XUSEC("PSXMAIL")) D
 | 
|---|
 | 68 |  .F  S USER=$O(^XUSEC("PSXMAIL",USER)) Q:'USER  S XMY(USER)=""
 | 
|---|
 | 69 |  E  D
 | 
|---|
 | 70 |  .F  S USER=$O(^XUSEC("PSXCMOPMGR",USER)) Q:'USER  S XMY(USER)=""
 | 
|---|
 | 71 |  ;
 | 
|---|
 | 72 |  S XMTEXT="PSBMSG(",XMSUB="ePharmacy - CMOP Not TRANSMITTED Rx List"
 | 
|---|
 | 73 |  S XMDUZ=.5
 | 
|---|
 | 74 |  D ^XMD
 | 
|---|
 | 75 |  Q
 | 
|---|
 | 76 |  ;
 | 
|---|
 | 77 |  ;Store E-mail line for later use.
 | 
|---|
 | 78 | STORELN(LINE) ;
 | 
|---|
 | 79 |  S EMCNT=EMCNT+1
 | 
|---|
 | 80 |  S ^TMP("PSXEPHOUT",$J,"M",EMCNT)=LINE
 | 
|---|
 | 81 |  Q
 | 
|---|
 | 82 |  ;
 | 
|---|
 | 83 |  ;Clean all remaining arrays and variables.
 | 
|---|
 | 84 | CLEAN ;
 | 
|---|
 | 85 |  K ^TMP("PSXEPHOUT",$J),^TMP("PSXEPHIN",$J)
 | 
|---|
 | 86 |  Q
 | 
|---|