| 1 | PSSP110 ; Post init routine for patch PSS*1*110 03/30/2006 4:57P | 
|---|
| 2 | ;;1.0;PHARMACY DATA MANAGEMENT;**110**;9/30/97 | 
|---|
| 3 | Q | 
|---|
| 4 | EN ; Entry point | 
|---|
| 5 | ; Convert the NAME field in files #51 & 51.1 to all CAPS | 
|---|
| 6 | ; | 
|---|
| 7 | N DD,D0,DA,DIE,DR,PSSI,PSSJ,PSSCNT,PSSTXT,PSSLN,PSSAST | 
|---|
| 8 | N XMDUZ,XMSUB,XMTEXT,XMY,DIFROM,PSSFLG | 
|---|
| 9 | I $G(U)="" S U="^" | 
|---|
| 10 | S XMDUZ="PSS*1*110 Post Init",XMY(DUZ)="" | 
|---|
| 11 | ; | 
|---|
| 12 | ; File 51 (Medication Instruction) | 
|---|
| 13 | S DIE="^PS(51," | 
|---|
| 14 | D CON | 
|---|
| 15 | S XMSUB="File #51 modified records" | 
|---|
| 16 | D MSG1 | 
|---|
| 17 | ; | 
|---|
| 18 | ; File 51.1 (Administration Schedule) | 
|---|
| 19 | S DIE="^PS(51.1," | 
|---|
| 20 | D CON | 
|---|
| 21 | S XMSUB="File #51.1 modified records" | 
|---|
| 22 | D MSG1 | 
|---|
| 23 | ; | 
|---|
| 24 | ; File 51.2 (Medication Routes) | 
|---|
| 25 | ;S XMSUB="File #51.2 'to be' modified records" | 
|---|
| 26 | ;D COM | 
|---|
| 27 | G ENQ | 
|---|
| 28 | ; | 
|---|
| 29 | CON ; Convert ONLY lowercase alphabet to uppercase.  All other characters | 
|---|
| 30 | ; in the NAME field are left alone. | 
|---|
| 31 | S PSSI="",PSSCNT=0,PSSLN=2,PSSFLG="" | 
|---|
| 32 | F  S PSSI=$O(@(DIE_"""B"""_",PSSI)")) Q:PSSI=""  D | 
|---|
| 33 | . I PSSI'?.E1L.E Q  ; No lowercase in the NAME, no need to convert | 
|---|
| 34 | . S PSSJ=$$UP^XLFSTR(PSSI),PSSAST="*" | 
|---|
| 35 | . I '$O(@(DIE_"""B"""_",PSSJ,0)")) D | 
|---|
| 36 | . . S DA=$O(@(DIE_"""B"""_",PSSI,0)")),DR=".01///"_PSSJ | 
|---|
| 37 | . . D ^DIE | 
|---|
| 38 | . . S PSSAST="" | 
|---|
| 39 | . E  S PSSFLG=1 | 
|---|
| 40 | . S PSSCNT=PSSCNT+1 | 
|---|
| 41 | . S PSSLN=PSSLN+1,PSSTXT(PSSLN)=PSSAST_PSSI | 
|---|
| 42 | Q | 
|---|
| 43 | COM ; Compile a list of all medication routes that do NOT | 
|---|
| 44 | ; have an abbreviation and send it to DUZ. | 
|---|
| 45 | S PSSI="",PSSCNT=0,PSSLN=2 | 
|---|
| 46 | F  S PSSI=$O(^PS(51.2,PSSI)) Q:PSSI']""  D | 
|---|
| 47 | . I '$D(^PS(51.2,PSSI,0)) Q | 
|---|
| 48 | . S PSSJ=$G(^PS(51.2,PSSI,0)) | 
|---|
| 49 | . I $P(PSSJ,U,3)']"" D | 
|---|
| 50 | . . S PSSCNT=PSSCNT+1,PSSLN=PSSLN+1 | 
|---|
| 51 | . . S PSSTXT(PSSLN)=$P(PSSJ,U,1) | 
|---|
| 52 | I PSSCNT<1 D  Q | 
|---|
| 53 | . S PSSTXT(1)="All medication routes have abbreviations!" | 
|---|
| 54 | . D SEND | 
|---|
| 55 | S PSSTXT(1)="The following medication route/s does/do not" | 
|---|
| 56 | S PSSTXT(2)="have a corresponding abbreviation:" | 
|---|
| 57 | D SEND | 
|---|
| 58 | Q | 
|---|
| 59 | MSG1 ; Send message to user DUZ for files 51 & 51.1 | 
|---|
| 60 | I PSSCNT<1 D  Q | 
|---|
| 61 | . S PSSTXT(1)="No NAME conversion was neccessary!" | 
|---|
| 62 | . D SEND | 
|---|
| 63 | S PSSTXT(1)="The following NAME/s was/were converted" | 
|---|
| 64 | S PSSTXT(2)="from lowercase to uppercase:" | 
|---|
| 65 | I PSSFLG=1 D | 
|---|
| 66 | . S PSSLN=PSSLN+1 | 
|---|
| 67 | . S PSSTXT(PSSLN)="Record/s marked with an '*' was/were skipped." | 
|---|
| 68 | . S PSSLN=PSSLN+1 | 
|---|
| 69 | . S PSSTXT(PSSLN)="Conversion to uppercase would have created a" | 
|---|
| 70 | . S PSSLN=PSSLN+1 | 
|---|
| 71 | . S PSSTXT(PSSLN)="duplicate NAME.  Please check!!" | 
|---|
| 72 | D SEND | 
|---|
| 73 | Q | 
|---|
| 74 | SEND ; | 
|---|
| 75 | S XMTEXT="PSSTXT(",XMDUZ="PSS*1*110 Post Init",XMY(DUZ)="" | 
|---|
| 76 | D ^XMD | 
|---|
| 77 | K PSSTXT | 
|---|
| 78 | ENQ Q | 
|---|