| 1 | PSO160P2 ;BIR/MR-Patch 160 Post Install routine - Part 2 ;11/27/03 | 
|---|
| 2 | ;;7.0;OUTPATIENT PHARMACY;**160**;DEC 1997 | 
|---|
| 3 | ;External reference ^SCE( supported by DBIA 402 | 
|---|
| 4 | ; | 
|---|
| 5 | EN N DAT,ENC,TODAY,INACT,DIE,DA,DR,CLI,SORT | 
|---|
| 6 | ; | 
|---|
| 7 | ; - Patient is already TPB Inactive (INACTIVATION OF BENEFIT DATE) | 
|---|
| 8 | I PSOTIBD'="" Q | 
|---|
| 9 | ; | 
|---|
| 10 | ; - At least one active TPB prescription found, if NOT Quit | 
|---|
| 11 | I $$ACTRX^PSOTPCUL(PSOTDFN,1) Q | 
|---|
| 12 | ; | 
|---|
| 13 | S DAT=PSOTDBG-1,(ENC,INACT)=0 D NOW^%DTC S TODAY=%\1 | 
|---|
| 14 | F  S DAT=$O(^SCE("ADFN",PSOTDFN,DAT)) Q:'DAT  D  I INACT Q | 
|---|
| 15 | . F  S ENC=$O(^SCE("ADFN",PSOTDFN,DAT,ENC)) Q:'ENC  D  I INACT Q | 
|---|
| 16 | . . ; | 
|---|
| 17 | . . ; - NOT an Appointment | 
|---|
| 18 | . . I $$GET1^DIQ(409.68,ENC,.08,"I")'=1 Q | 
|---|
| 19 | . . ; | 
|---|
| 20 | . . ; - Appointment is not CHECKED OUT | 
|---|
| 21 | . . I $$UP^XLFSTR($TR($$GET1^DIQ(409.68,ENC,.12),"- "))'="CHECKEDOUT" Q | 
|---|
| 22 | . . ; | 
|---|
| 23 | . . ; - STOP CODE for the Encounter Location not TPB | 
|---|
| 24 | . . I '$$TPBSC^PSOTPCUL($$GET1^DIQ(409.68,ENC,.04,"I")) Q | 
|---|
| 25 | . . ; | 
|---|
| 26 | . . ; - Inactivate TPB benefits for the patient | 
|---|
| 27 | . . S DIE=52.91,DA=PSOTDFN,DR="2///"_TODAY_";3///1" D ^DIE K DIE,DR,DA | 
|---|
| 28 | . . ; | 
|---|
| 29 | . . ; - Set ^XTMP("PSO160P2",$J) for the Mailman Message | 
|---|
| 30 | . . S CLI=$$GET1^DIQ(409.68,ENC,.04) | 
|---|
| 31 | . . ; | 
|---|
| 32 | . . ; - Sets ^TMP global for Mailman Message | 
|---|
| 33 | . . S SORT=$E(PATNAM,1,23)_"("_PATSSN_")" | 
|---|
| 34 | . . S ^XTMP("PSO160P2",$J,"T",SORT)=DAT_"^"_CLI | 
|---|
| 35 | . . S INACT=1 | 
|---|
| 36 | ; | 
|---|
| 37 | Q | 
|---|
| 38 | ; | 
|---|
| 39 | MAIL ; Sends Mailman message to PSO TPB GROUP mail group with list of | 
|---|
| 40 | ; patients that have been inactivated. | 
|---|
| 41 | N DFN,XMTEXT,XMDUZ,XMSUB,DASH,LINE,HDR,XMY,CNT,DASH,DATA,DIFROM,TEXT | 
|---|
| 42 | N PNAM | 
|---|
| 43 | ; | 
|---|
| 44 | S XMDUZ="PATCH PSO*7*160" D SXMY^PSOTPCUL("PSO TPB GROUP") | 
|---|
| 45 | S XMY(DUZ)="",XMSUB="PSO*7*160 - LIST OF TPB PATIENTS INACTIVATED" | 
|---|
| 46 | ; | 
|---|
| 47 | ; Mailman Message - Header | 
|---|
| 48 | S $P(DASH,"-",79)="",LINE=0 | 
|---|
| 49 | D SETLN("The Post-Install process for PSO*7*160 - Part 2 successfully completed.") | 
|---|
| 50 | D SETLN(" ") | 
|---|
| 51 | D SETLN("Started on: "_$$FMTE^XLFDT($G(^XTMP("PSO160DR",$J,"START")))) | 
|---|
| 52 | D SETLN("Finished on: "_$$FMTE^XLFDT($G(^XTMP("PSO160DR",$J,"FINISH")))) | 
|---|
| 53 | D SETLN(" ") | 
|---|
| 54 | ; | 
|---|
| 55 | ;If no entries created above, skip reporting | 
|---|
| 56 | I '$D(^XTMP("PSO160P2",$J,"T")) D  G SEND | 
|---|
| 57 | . D SETLN("No patients have been inactivated from TPB (Transitional Pharmacy Benefit).") | 
|---|
| 58 | ; | 
|---|
| 59 | D SETLN("The following patients had their TPB (Transitional Pharmacy Benefit) benefit") | 
|---|
| 60 | D SETLN("automatically inactivated because the following appointment was found: ") | 
|---|
| 61 | D SETLN(" "),SETLN(DASH) | 
|---|
| 62 | S HDR="PATIENT (LAST4SSN)",$E(HDR,31)="APPOINTMENT DATE" | 
|---|
| 63 | S $E(HDR,50)="VA CLINIC" D SETLN(HDR),SETLN(DASH) | 
|---|
| 64 | ; | 
|---|
| 65 | ; Mailman Message - Body | 
|---|
| 66 | S PNAM="",CNT=0 | 
|---|
| 67 | F  S PNAM=$O(^XTMP("PSO160P2",$J,"T",PNAM)) Q:PNAM=""  D | 
|---|
| 68 | . S DATA=$G(^XTMP("PSO160P2",$J,"T",PNAM)) | 
|---|
| 69 | . S TEXT=PNAM,$E(TEXT,31)=$$FMTE^XLFDT($P(DATA,"^")) | 
|---|
| 70 | . S $E(TEXT,50)=$E($P(DATA,"^",2),1,30) | 
|---|
| 71 | . D SETLN(TEXT) S CNT=CNT+1 | 
|---|
| 72 | ; | 
|---|
| 73 | ; Mailman Messae - Footer | 
|---|
| 74 | D SETLN(" "),SETLN("Total: "_CNT_" Patient(s)") | 
|---|
| 75 | ; | 
|---|
| 76 | SEND ; - Calls ^XMD to send the message | 
|---|
| 77 | S XMTEXT="^XTMP(""PSO160P2"",$J,""M""," D ^XMD | 
|---|
| 78 | K ^XTMP("PSO160P2",$J,"M") | 
|---|
| 79 | Q | 
|---|
| 80 | ; | 
|---|
| 81 | SETLN(TXT)   ; Sets a line in the XTMP global for the Mailman Message | 
|---|
| 82 | S LINE=$G(LINE)+1 | 
|---|
| 83 | S ^XTMP("PSO160P2",$J,"M",LINE)=TXT | 
|---|
| 84 | Q | 
|---|