[613] | 1 | PSJUTL3 ;BIR/MLM-MISC. INPATIENT UTILITIES ;29 OCT 01 / 4:29 PM
|
---|
| 2 | ;;5.0; INPATIENT MEDICATIONS ;**58**;16 DEC 97
|
---|
| 3 | ;
|
---|
| 4 | ; Reference to ^PS(55 is supported by DBIA# 2191.
|
---|
| 5 | ; Reference to ^PSSLOCK is supported by DBIA# 2789.
|
---|
| 6 | ;
|
---|
| 7 | EN ;
|
---|
| 8 | Q:$$PATCH^XPDUTL("PSJ*5.0*58")
|
---|
| 9 | S ZTDTH=$H,ZTRTN="QUEIV^PSJUTL3",ZTIO="",ZTDESC="Inpatient medications - Mark IV orders as verified"
|
---|
| 10 | D ^%ZTLOAD
|
---|
| 11 | Q
|
---|
| 12 | QUEIV ;
|
---|
| 13 | D XTMP
|
---|
| 14 | NEW DFN,START,PSJX
|
---|
| 15 | D NOW^%DTC S START=%
|
---|
| 16 | F DFN=0:0 S DFN=$O(^PS(55,DFN)) Q:'DFN D
|
---|
| 17 | . S PSJX=$P($G(^PS(55,DFN,5.1)),U,11)
|
---|
| 18 | . Q:PSJX=3
|
---|
| 19 | . I PSJX=2 D MARKIV(DFN) Q
|
---|
| 20 | . D CNIV^PSJUTL1(DFN)
|
---|
| 21 | D SEND(START)
|
---|
| 22 | Q
|
---|
| 23 | XTMP ;
|
---|
| 24 | I '$D(^XTMP("PSJ NEW PERSON",0)) D
|
---|
| 25 | . NEW X1,X2 S X1=DT,X2=30 D C^%DTC
|
---|
| 26 | . S ^XTMP("PSJ NEW PERSON",0)=X_U_DT_U_"Correct changed user names"
|
---|
| 27 | Q
|
---|
| 28 | ;
|
---|
| 29 | MARKIV(DFN) ;
|
---|
| 30 | ;Mark the Verifying Pharmacy field for active order created prior
|
---|
| 31 | ; to PSJ*5*58
|
---|
| 32 | NEW ON,ON55,X,PSJPINIT,PSJIDT,PSJNOW,PSIVACT
|
---|
| 33 | Q:'$$L^PSSLOCK(DFN,0)
|
---|
| 34 | D NOW^%DTC S PSJNOW=$E(%,1,12)
|
---|
| 35 | S PSJIDT=$$INSTLDT^PSJUTL1() I PSJIDT="" S PSJIDT=PSJNOW
|
---|
| 36 | S $P(^PS(55,DFN,5.1),U,11)=3
|
---|
| 37 | F ON=0:0 S ON=$O(^PS(55,DFN,"IV",ON)) Q:'ON D
|
---|
| 38 | . S X=$G(^PS(55,DFN,"IV",ON,2))
|
---|
| 39 | . I +X>PSJIDT Q
|
---|
| 40 | . S PSJPINIT=$P(X,U,11)
|
---|
| 41 | . NEW XX,XX1,PSJIEN
|
---|
| 42 | . F XX=0:0 S XX=$O(^PS(55,DFN,"IV",ON,"A",XX)) Q:'XX D
|
---|
| 43 | .. NEW PSJX S XX1=$G(^PS(55,DFN,"IV",ON,"A",XX,0))
|
---|
| 44 | .. Q:$P(XX1,U,3)=""
|
---|
| 45 | .. K PSJIEN S PSJX=""
|
---|
| 46 | .. I $P(XX1,U,6)="" D
|
---|
| 47 | ... D NAME^PSJBCMA1($P(XX1,U,3),,,.PSJIEN)
|
---|
| 48 | ... S:PSJIEN>0 $P(^PS(55,DFN,"IV",ON,"A",XX,0),U,6)=PSJIEN,XX1=^(0)
|
---|
| 49 | .. Q:+$P($G(^PS(55,DFN,"IV",ON,4)),U,4)
|
---|
| 50 | .. I $P(XX1,U,2)="F",($P(XX1,U,4)'="FINISHED BY TECHNICIAN") S PSJPINIT=$P(XX1,U,6),PSJX=1
|
---|
| 51 | .. S:$G(PSJIEN)=-1 ^XTMP("PSJ NEW PERSON",1,$P(XX1,U,3),DFN,ON,XX)=PSJX
|
---|
| 52 | . Q:+PSJPINIT'>0
|
---|
| 53 | . Q:+$P($G(^PS(55,DFN,"IV",ON,4)),U,4)
|
---|
| 54 | . D VF(ON,DFN,PSJPINIT,PSJNOW)
|
---|
| 55 | D UL^PSSLOCK(DFN)
|
---|
| 56 | Q
|
---|
| 57 | VF(ON,DFN,PSJPINIT,PSJNOW) ; Update verifying pharm and date fields.
|
---|
| 58 | K DA,DIE,DR
|
---|
| 59 | S PSIVACT=""
|
---|
| 60 | S DIE="^PS(55,"_DFN_",""IV"",",DA=ON,DA(1)=DFN
|
---|
| 61 | S DR="140////"_PSJPINIT_";141////"_PSJNOW_";142////1" D ^DIE
|
---|
| 62 | S ON55=ON,PSIVREA="V",PSIVALT=""
|
---|
| 63 | S PSIVAL="AUTO VERIFIED WITH PATCH PSJ*5*58"
|
---|
| 64 | D LOG^PSIVORAL K PSIVAL,PSIVALT,PSIVREA
|
---|
| 65 | Q
|
---|
| 66 | SEND(START) ;
|
---|
| 67 | NEW DIFROM,XMDUZ,XMSUB,XMTEXT,XMY,STOP,LINE
|
---|
| 68 | D NOW^%DTC S STOP=%
|
---|
| 69 | S LINE(1)="Marking prior IV orders as verified started: "_$$FMTE^XLFDT(START)
|
---|
| 70 | S LINE(2)="It ran to completion: "_$$FMTE^XLFDT(STOP)
|
---|
| 71 | I $O(^XTMP("PSJ NEW PERSON",0)) D
|
---|
| 72 | . S LINE(3)=""
|
---|
| 73 | . S LINE(4)="Please assign the PSJI ACTIVITY LOG VA200 option to a holder of the"
|
---|
| 74 | . S LINE(5)="PSJI MGR key who is familiar with the Pharmacy users to correct any "
|
---|
| 75 | . S LINE(6)="names that the software was unable to match to the New Person file (#200)."
|
---|
| 76 | S XMSUB="PSJ*5*58 IV Verification",XMTEXT="LINE("
|
---|
| 77 | S XMDUZ="PSJ*5*58"
|
---|
| 78 | S XMY(+DUZ)="" D ^XMD
|
---|
| 79 | Q
|
---|