| 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 | 
|---|