[613] | 1 | DGPWB ;ALB/CAW/MLR - Patient Wristband Print ; 9/27/00 3:40pm
|
---|
| 2 | ;;5.3;Registration;**62,82,287**;Aug 13, 1993
|
---|
| 3 | ; -**287** Substituting SS# when Primary long ID missing in .36
|
---|
| 4 | ;
|
---|
| 5 | EN ; Ask patient name
|
---|
| 6 | ; This is used when printing a wristband from the menu
|
---|
| 7 | ;
|
---|
| 8 | N DFN,VAIN,VAERR,DIC,Y,OPTIND
|
---|
| 9 | S OPTIND=0
|
---|
| 10 | S DIC(0)="AEMQZ",DIC="^DPT("
|
---|
| 11 | D ^DIC I $D(DTOUT)!$D(DUOUT)!(Y<0) G ENQ
|
---|
| 12 | S DFN=+Y D INP^VADPT
|
---|
| 13 | S:'$G(VAIN(4)) OPTIND=1
|
---|
| 14 | I $G(VAIN(4)),('$$DIVISION($P(VAIN(4),U))) W !,"Printing Wristbands for inpatients at this division is set to no." G ENQ
|
---|
| 15 | I OPTIND S Y=$$DEVICE() G:'Y!(Y>1) ENQ D SET G ENQ
|
---|
| 16 | D START(DFN)
|
---|
| 17 | ENQ K DTOUT,DUOUT Q
|
---|
| 18 | ;
|
---|
| 19 | START(DFN) ;Start
|
---|
| 20 | ; This is where it will be used when in admit or transfer
|
---|
| 21 | ; Input is patient IFN
|
---|
| 22 | ;
|
---|
| 23 | N WARD,DIVISION,PRINT,Y
|
---|
| 24 | D INP^VADPT I '$G(VAIN(4)) G STARTQ
|
---|
| 25 | S WARD=+VAIN(4)
|
---|
| 26 | TRANS I $G(DGPMA),'$$TRCHK($P(DGPMA,U,18)) G STARTQ
|
---|
| 27 | ; Check to see if no change was made on edit
|
---|
| 28 | I $D(DGPMA),$D(DGPMP),$P(DGPMA,U,18)=41 N Y D G DIV:Y
|
---|
| 29 | .S Y=$O(^UTILITY("DGPM",$J,2,"")) Q:'Y
|
---|
| 30 | .I $P(^UTILITY("DGPM",$J,2,Y,"P"),U,6)=$P(^UTILITY("DGPM",$J,2,Y,"A"),U,6) S Y=0
|
---|
| 31 | I $D(DGPMA),$D(DGPMP),($P(DGPMA,U,6)=$P(DGPMP,U,6)) G STARTQ
|
---|
| 32 | ; Check to see if division parameter to print wristband is on
|
---|
| 33 | DIV I '$$DIVISION(WARD) G STARTQ
|
---|
| 34 | I $G(DGPMA),'$$ASK G STARTQ
|
---|
| 35 | ; Prompt for device - quit if device is not selected or is queued
|
---|
| 36 | S Y=$$DEVICE() I 'Y!(Y>1) G STARTQ
|
---|
| 37 | ; Set up lines to print
|
---|
| 38 | D SET
|
---|
| 39 | STARTQ Q
|
---|
| 40 | ;
|
---|
| 41 | DIVISION(WARD) ; Obtain Divison from Ward Location
|
---|
| 42 | ;
|
---|
| 43 | N Y,DIVISION
|
---|
| 44 | S Y=0
|
---|
| 45 | ; Print Patient Wristband parameter
|
---|
| 46 | S DIVISION=$P($G(^DIC(42,+WARD,0)),U,11)
|
---|
| 47 | I '$P(^DG(43,1,"GL"),U,2) S DIVISION=$O(^DG(40.8,0))
|
---|
| 48 | I $P($G(^DG(40.8,+DIVISION,0)),U,8)="Y" S Y=1
|
---|
| 49 | Q Y
|
---|
| 50 | ;
|
---|
| 51 | SET ;Set the lines to print
|
---|
| 52 | ;This is where taskman will start when job is queued.
|
---|
| 53 | ; Input needed is DFN and WARD (WARD is set to IFN of WARD LOCATION)
|
---|
| 54 | ;
|
---|
| 55 | N CNT,BAND,DATA,FINAL,IFN,ITEMD,LINE,X,WHERE
|
---|
| 56 | D DEM^VADPT
|
---|
| 57 | ;
|
---|
| 58 | ; If a different wristband is going to be used-change name in "B" x-ref
|
---|
| 59 | ;
|
---|
| 60 | S LINE=0 S IFN=$O(^DIC(39.1,"B","WRISTBAND",0)) Q:'IFN
|
---|
| 61 | F S LINE=$O(^DIC(39.1,IFN,1,LINE)) Q:'LINE D
|
---|
| 62 | .S DATA=0 F S DATA=$O(^DIC(39.1,IFN,1,LINE,1,DATA)) Q:'DATA D
|
---|
| 63 | ..S ITEMD=^DIC(39.1,IFN,1,LINE,1,DATA,0)
|
---|
| 64 | ..S X=$G(^DIC(39.2,+ITEMD,1)) X X
|
---|
| 65 | ..;
|
---|
| 66 | ..;Checking for PID# and substituting SS# if missing **287**
|
---|
| 67 | ..I Y="",$G(^DIC(39.2,+ITEMD,0))="PID" D PID
|
---|
| 68 | ..;
|
---|
| 69 | ..S BAND(LINE,-DATA)=$E(Y,1,$P(ITEMD,U,3))_"^"_$P(ITEMD,U,2)
|
---|
| 70 | .S WHERE="" F S WHERE=$O(BAND(LINE,WHERE)) Q:'WHERE D
|
---|
| 71 | ..I $D(BAND(LINE,(WHERE+1))) S $P(BAND(LINE,WHERE),U,2)=($P(BAND(LINE,WHERE),U,2))-($L($P(BAND(LINE,(WHERE+1)),U)))
|
---|
| 72 | ..S $P(FINAL(LINE)," ",$P(BAND(LINE,WHERE),U,2))=$P(BAND(LINE,WHERE),U)
|
---|
| 73 | F CNT=1:1:99 Q:'$D(FINAL(CNT)) S X="LINE"_CNT S @X=FINAL(CNT)
|
---|
| 74 | D PRINT
|
---|
| 75 | D:'$D(ZTQUEUED) ^%ZISC
|
---|
| 76 | ; This is where the call to update the allergy file
|
---|
| 77 | S X="GMRAMCU0" X ^%ZOSF("TEST") I $T D IDBAND^GMRAMCU0(DFN,DT,DUZ)
|
---|
| 78 | D END
|
---|
| 79 | Q
|
---|
| 80 | ;
|
---|
| 81 | PID ;Substituting SS# for missing PID# **287** MLR
|
---|
| 82 | S Y=$P($G(^DPT(DFN,0)),U,9)
|
---|
| 83 | D
|
---|
| 84 | . I Y S Y=$E(Y,1,3)_" "_$E(Y,4,5)_" "_$E(Y,6,$L(Y)) Q
|
---|
| 85 | . S Y="NO ID FOUND" Q
|
---|
| 86 | Q ;PID
|
---|
| 87 | ;
|
---|
| 88 | END ;Clean up variables
|
---|
| 89 | K VARIABLE
|
---|
| 90 | N CNT,VAR
|
---|
| 91 | F CNT=1:1:99 S VAR="LINE"_CNT Q:'$D(@VAR) K @VAR
|
---|
| 92 | Q
|
---|
| 93 | ;
|
---|
| 94 | PRINT ; Print the wristband
|
---|
| 95 | ;
|
---|
| 96 | ; Change call from BL to whatever device is added in DGPWBD
|
---|
| 97 | ;
|
---|
| 98 | D BL^DGPWBD
|
---|
| 99 | Q
|
---|
| 100 | ;
|
---|
| 101 | DEVICE() ;
|
---|
| 102 | S Y=0
|
---|
| 103 | DEVEN S %ZIS="Q",%ZIS("A")="PRINT WRISTBAND ON DEVICE: ",%ZIS("B")=""
|
---|
| 104 | D ^%ZIS I POP G DEVICEQ
|
---|
| 105 | I $E(IOST,1,2)'["P-" W !,"A printer must be selected." G DEVEN
|
---|
| 106 | I '$D(IO("Q")) S Y=1 G DEVICEQ
|
---|
| 107 | S Y=$$QUE
|
---|
| 108 | DEVICEQ Q Y
|
---|
| 109 | ;
|
---|
| 110 | QUE() ; -- que job
|
---|
| 111 | ; return: did job que [ 1|yes 0|no ]
|
---|
| 112 | ;
|
---|
| 113 | K ZTSK,IO("Q")
|
---|
| 114 | S ZTDESC="Patient Wristband Print",ZTRTN="SET^DGPWB"
|
---|
| 115 | F X="WARD","DFN" S ZTSAVE(X)=""
|
---|
| 116 | D ^%ZTLOAD W:$D(ZTSK) " (Task: ",ZTSK,")"
|
---|
| 117 | Q $D(ZTSK)
|
---|
| 118 | ;
|
---|
| 119 | TRCHK(TYPE) ;Check to see if appropriate type to continue
|
---|
| 120 | ;
|
---|
| 121 | N MVMT,Y
|
---|
| 122 | S Y=0
|
---|
| 123 | S MVMT=$P($G(^DG(405.2,+TYPE,0)),U,2) I MVMT=1 S Y=1 G TRCHKQ
|
---|
| 124 | I "^4^13^14^22^23^24^41^44^45^"[(U_TYPE_U) S Y=1
|
---|
| 125 | TRCHKQ Q Y
|
---|
| 126 | ;
|
---|
| 127 | ASK() ;Ask if they want to print
|
---|
| 128 | W ! S DIR("A")="Do you want to print a Patient Wristband"
|
---|
| 129 | S DIR(0)="Y",DIR("B")="YES"
|
---|
| 130 | D ^DIR K DIR I $D(DUOUT)!($D(DTOUT)) S Y=0
|
---|
| 131 | ASKQ Q Y
|
---|