| 1 | PSIVHLD ;BIR/PR-ORDERS ON/OFF HOLD, ON/OFF CALL ;16 DEC 97 / 1:39 PM 
 | 
|---|
| 2 |  ;;5.0; INPATIENT MEDICATIONS ;;16 DEC 97
 | 
|---|
| 3 |  ;Needs DFN,PSIVNST (O or H)
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | STOP ;Put all orders on hold or on call
 | 
|---|
| 6 |  N DA,DIE,DR,PSIVACT
 | 
|---|
| 7 |  F ON1=0:0 S ON1=$O(^PS(55,DFN,"IV",ON1)) Q:'ON1  I "AR"[$P($G(^(ON1,0)),U,17) D
 | 
|---|
| 8 |  .K DA,DIE,DR S PSIVACT=1,DA=ON1,DA(1)=DFN,DIE="^PS(55,"_DFN_",""IV"",",DR="100///"_PSIVNST,PSIVREA=PSIVNST D ^DIE,LOG
 | 
|---|
| 9 |  Q
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 | START ;Set all orders put on hold or oncall back to active if not expired.
 | 
|---|
| 12 |  N DA,DIE,DR,ON1,PSIVACT,PSIVALT,PSIVHNW,PSIVREA
 | 
|---|
| 13 |  D NOW^%DTC S PSIVHNW=%
 | 
|---|
| 14 |  F ON1=0:0 S ON1=$O(^PS(55,DFN,"IV",ON1)) Q:'ON1  I $D(^(ON1,0)) S Y=^(0) I PSIVNST[$P(Y,U,17) D
 | 
|---|
| 15 |  .K DA,DR,DIE S PSIVACT=1,DA=ON1,DA(1)=DFN,DIE="^PS(55,"_DFN_",""IV"",",P(17)=$S($P(Y,U,3)<PSIVHNW:"E",1:"A"),DR="100///"_P(17) D ^DIE
 | 
|---|
| 16 |  .I P(17)'="E" S PSIVREA=$S(PSIVNST="H":"U",1:"C") D LOG
 | 
|---|
| 17 |  Q
 | 
|---|
| 18 | LOG ;Auto entry to log
 | 
|---|
| 19 |  K PSIVALT S PSIVAL=$P($G(^PS(53.3,+PSGALO,0)),U),(ON,ON55)=ON1_"V"
 | 
|---|
| 20 |  D LOG^PSIVORAL D:PSIVNST="H" HOLD^PSIVOE
 | 
|---|
| 21 |  Q
 | 
|---|