[613] | 1 | RMPOLET1 ;EDS/PAK - HOME OXYGEN LETTERS ;7/24/98
|
---|
| 2 | ;;3.0;PROSTHETICS;**29**;Feb 09, 1996
|
---|
| 3 | ;
|
---|
| 4 | PRINT(ANS) ; print listing of patient letters to be generated.
|
---|
| 5 | S %ZIS="Q" D ^%ZIS Q:POP=1
|
---|
| 6 | I $D(IO("Q")) D Q:'$$QUEUE("RMPO : Patient Letter List","START^RMPOLET1",.ZTSAVE) D HOME^%ZIS Q
|
---|
| 7 | . K ZTSAVE S (ZTSAVE("^TMP($J,"),ZTSAVE("RMPOXITE"),ZTSAVE("ANS"),ZTSAVE("LTRX("))=""
|
---|
| 8 | ;
|
---|
| 9 | START ;
|
---|
| 10 | N ANSW,NAME,LINE,SP
|
---|
| 11 | ;
|
---|
| 12 | S $P(LINE,"-",80)="",$P(SP," ",80)=" "
|
---|
| 13 | ; Get letter code description
|
---|
| 14 | S RMPOLCD="" F S RMPOLCD=$O(LTRX("A",RMPOLCD)) Q:RMPOLCD="" S HEAD(RMPOLCD)=$$EXTERNAL^DILFD(669.965,1,"",RMPOLCD)
|
---|
| 15 | ;
|
---|
| 16 | U IO(0) S ANSW=""
|
---|
| 17 | I "Aa"[ANS S RMPOLCD=0 F S RMPOLCD=$O(^TMP($J,"RMPOLST",RMPOLCD)) Q:RMPOLCD="" D
|
---|
| 18 | . D HEADER
|
---|
| 19 | . S RMPODFN="" F S RMPODFN=$O(^TMP($J,"RMPOLST",RMPOLCD,RMPODFN)) Q:RMPODFN=""!(ANSW="^") D LINE
|
---|
| 20 | E S RMPOLCD=ANS,RMPODFN="" F S RMPODFN=$O(^TMP($J,"RMPOLST",RMPOLCD,RMPODFN)) Q:RMPODFN=""!(ANSW="^") D LINE
|
---|
| 21 | Q:ANS="^"
|
---|
| 22 | I IOST["C-" R !?20,"Enter <RETURN> to continue",ANSW:DTIME Q:'$T
|
---|
| 23 | Q
|
---|
| 24 | ;
|
---|
| 25 | LINE ;
|
---|
| 26 | N REC
|
---|
| 27 | ;
|
---|
| 28 | S RMPOLTR=^TMP($J,"RMPOLST",RMPOLCD,RMPODFN),LTR=$P(^RMPR(665.2,RMPOLTR,0),U)
|
---|
| 29 | S REC=^TMP($J,"RMPODEMO",RMPODFN)
|
---|
| 30 | S RMPOITEM=$P(REC,U,5) S:RMPOITEM="" RMPOITEM="No Primary!"
|
---|
| 31 | W !,$E($P(REC,U),1,27),?28,$P(REC,U,2),?41,$E(RMPOITEM,1,12)
|
---|
| 32 | S Y=$P(REC,U,3) D DD^%DT W ?54,Y
|
---|
| 33 | S Y=$P(REC,U,4)
|
---|
| 34 | I Y'="" D DD^%DT
|
---|
| 35 | I Y="" S Y="No Rx!"
|
---|
| 36 | W ?68,Y
|
---|
| 37 | ;
|
---|
| 38 | D UPDLTR^RMPOLET0(RMPODFN,LTR) ; update "letter to be sent"
|
---|
| 39 | ;
|
---|
| 40 | I IOST["C-",($Y+6)>IOSL W !!?20,"Enter <RETURN> to continue or '^' to quit" R ANSW:DTIME S:'$T!(ANSW="^") ANSW="^" D:ANSW'="^" HEADER
|
---|
| 41 | Q
|
---|
| 42 | HEADER ;
|
---|
| 43 | N TITLE
|
---|
| 44 | ;
|
---|
| 45 | S TITLE="'"_HEAD(RMPOLCD)_"' letter Patient List"
|
---|
| 46 | W @IOF,!,$E(SP,1,(80-$L(TITLE)/2))_TITLE,!!,"Name",?28,"SSN",?41,"Primary Item",?54,"Activation",?68,"Expiry Date",!,?54,"Date",!,LINE
|
---|
| 47 | Q
|
---|
| 48 | DELETE ;deletes patient from the batch printing list
|
---|
| 49 | Q:'$$SITE^RMPOLET0
|
---|
| 50 | ;
|
---|
| 51 | ; attempt to lock virtual letter print record
|
---|
| 52 | L +^TMP("RMPO",$J,"LETTERPRINT"):0
|
---|
| 53 | I '$T W !,"You may delete after listing and before printing." H 3 D EXIT Q
|
---|
| 54 | ;
|
---|
| 55 | ;
|
---|
| 56 | GLTR ;ask for patients letter to be deleted from printing
|
---|
| 57 | N STA,Y,DA
|
---|
| 58 | ;
|
---|
| 59 | S RMPOLTR=""
|
---|
| 60 | F S RMPOLTR=$O(^RMPR(665,"ALTR",RMPOLTR)) Q:RMPOLTR="" D Q:'$G(RMPODFN)
|
---|
| 61 | . S DA=$$GPAT
|
---|
| 62 | . D:DA UPDLTR^RMPOLET0(DA,"@")
|
---|
| 63 | D EXIT
|
---|
| 64 | Q
|
---|
| 65 | ;
|
---|
| 66 | GPAT() ; select only patinet with specified letters pending
|
---|
| 67 | S DIC("S")="I $D(^RMPR(665,""ALTR"","_RMPOLTR_",Y))"
|
---|
| 68 | S DIC="^RMPR(665,",DIC(0)="QEAM"
|
---|
| 69 | S DIC("A")="Enter the patient to delete from printing: "
|
---|
| 70 | D ^DIC K DIC I Y'>0 Q 0
|
---|
| 71 | S RMPODFN=$P(Y,U)
|
---|
| 72 | Q RMPODFN
|
---|
| 73 | EXIT ;
|
---|
| 74 | L -^TMP("RMPO",$J,"LETTERPRINT")
|
---|
| 75 | D ^%ZISC
|
---|
| 76 | W !!,"DONE !!"
|
---|
| 77 | K DIC,RMPO,DEL
|
---|
| 78 | Q
|
---|
| 79 | ;
|
---|
| 80 | QUEUE(ZTDESC,ZTRTN,ZTSAVE) ; Queue print
|
---|
| 81 | D ^%ZTLOAD
|
---|
| 82 | I '$D(ZTSK) W !!,?5,"Report Cancelled!",! Q 0
|
---|
| 83 | E W !!,?5,"Print queued!",! Q 1
|
---|
| 84 | Q
|
---|