1 | RMPOLG ;HIN-CIOFO/RVD - HOME OXYGEN LETTERS (MANAGE LETTER) ;7/24/98
|
---|
2 | ;;3.0;PROSTHETICS;**29,46**;Feb 09, 1996
|
---|
3 | EN ; -- main entry point for manage letter list.
|
---|
4 | ; Input:
|
---|
5 | ; RMPOLCD - Selected Home Oxygen Letter code
|
---|
6 | ; Called by:
|
---|
7 | ; RMPOLZ - H.O. Letter Control module
|
---|
8 | D EN^VALM("RMPO MANAGE LETTER")
|
---|
9 | Q
|
---|
10 | ;
|
---|
11 | HDR ; -- header code
|
---|
12 | S VALMHDR(1)=$$CNTR^RMPOLY(" ",$$EXTERNAL^DILFD(669.965,1,"",RMPOLCD),80)
|
---|
13 | S VALMHDR(2)=$$CNTR^RMPOLY(" ","HOME OXYGEN PATIENT LETTER LIST",80)
|
---|
14 | Q
|
---|
15 | ;
|
---|
16 | INIT ; -- init variables and list array
|
---|
17 | N RMPODFN,REC,RMPOITEM,Y,X,SP
|
---|
18 | ;
|
---|
19 | ; for each entry in list for the selected letter type display details
|
---|
20 | S RMPONAM="",VALMCNT=0,$P(SP," ",80)=" "
|
---|
21 | F S RMPONAM=$O(^TMP($J,RMPOXITE,"RMPOLST",RMPOLCD,RMPONAM)) Q:RMPONAM="" D
|
---|
22 | . S RMPODFN=$P(^TMP($J,RMPOXITE,"RMPOLST",RMPOLCD,RMPONAM),U,2)
|
---|
23 | . S REC=^TMP($J,RMPOXITE,"RMPODEMO",RMPODFN),VALMCNT=VALMCNT+1
|
---|
24 | . S Y=$P(REC,U,3) D DD^%DT S RMPORX=Y,Y=$P(REC,U,4)
|
---|
25 | . I Y'="" D DD^%DT
|
---|
26 | . I Y="" S Y="No Rx!"
|
---|
27 | . S RMPOEXP=Y,RMPOITEM=$P(REC,U,5)
|
---|
28 | . S:RMPOITEM="" RMPOITEM="No Primary!"
|
---|
29 | . ;
|
---|
30 | . S X=$$SETFLD^VALM1($E(VALMCNT_SP,1,$P(VALMDDF("LINE #"),U,3)),"","LINE #")
|
---|
31 | . S X=$$SETFLD^VALM1($P($P(REC,U),","),X,"PATIENT")
|
---|
32 | . S X=$$SETFLD^VALM1($P(REC,U,2),X,"SSN")
|
---|
33 | . S X=$$SETFLD^VALM1(RMPOITEM,X,"PRIMARY ITEM")
|
---|
34 | . S X=$$SETFLD^VALM1(RMPORX,X,"ACTIVATION DATE")
|
---|
35 | . S X=$$SETFLD^VALM1(RMPOEXP,X,"Rx EXPIRY DATE")
|
---|
36 | . D SET^VALM10(VALMCNT,X,RMPODFN)
|
---|
37 | Q
|
---|
38 | ;
|
---|
39 | HELP ; -- help code
|
---|
40 | S X="?" D DISP^XQORM1 W !!
|
---|
41 | Q
|
---|
42 | ;
|
---|
43 | EXIT ; -- exit code
|
---|
44 | D CLEAN^VALM10
|
---|
45 | Q
|
---|
46 | ;
|
---|
47 | EN02 ; Delete list entry and code deleted in #665
|
---|
48 | N SEL,LINE
|
---|
49 | ; Select lines to delete
|
---|
50 | S SEL=$$SELN^RMPOLZA("L","Enter lines to delete",VALMCNT)
|
---|
51 | I SEL="^" S ^TMP($J,RMPOXITE,"EXIT")=1 Q ; quit to menu
|
---|
52 | Q:'SEL
|
---|
53 | N CNT
|
---|
54 | ; for each patient selected remove 'Letter to be sent' from
|
---|
55 | ; Prosthetics Patient File (665)
|
---|
56 | F CNT=1:1 S LINE=$P(SEL,",",CNT) Q:LINE="" D
|
---|
57 | . S RMPODFN=$O(@VALMAR@("IDX",LINE,""))
|
---|
58 | . S RMPONAM=$P(^TMP($J,RMPOXITE,"RMPODEMO",RMPODFN),U,1)
|
---|
59 | . S RMPONAM=$E(RMPONAM,1,15)
|
---|
60 | . D UPDLTR^RMPOLZA(RMPODFN,"@")
|
---|
61 | . ; purge work file holding data
|
---|
62 | . K ^TMP($J,RMPOXITE,"RMPOLST",RMPOLCD,RMPONAM),^TMP($J,RMPOXITE,"RMPODEMO",RMPODFN)
|
---|
63 | . Q:'$D(RMPOLCD)
|
---|
64 | . I RMPOLCD="A" D
|
---|
65 | . . S $P(^RMPR(665,RMPODFN,"RMPOA"),U,09)=DT,$P(^RMPR(665,RMPODFN,"RMPOA"),U,10)="D"
|
---|
66 | . . S RMDBAT="RMPOXBAT1"
|
---|
67 | . I RMPOLCD="B" D
|
---|
68 | . . S $P(^RMPR(665,RMPODFN,"RMPOA"),U,11)=DT,$P(^RMPR(665,RMPODFN,"RMPOA"),U,12)="D"
|
---|
69 | . . S RMDBAT="RMPOXBAT2"
|
---|
70 | . I RMPOLCD="C" D
|
---|
71 | . . S $P(^RMPR(665,RMPODFN,"RMPOA"),U,13)=DT,$P(^RMPR(665,RMPODFN,"RMPOA"),U,14)="D"
|
---|
72 | . . S RMDBAT="RMPOXBAT3"
|
---|
73 | . S DA=$O(^RMPR(669.9,RMPOXITE,RMDBAT,"B",RMPODFN,0))
|
---|
74 | . S DIK="^RMPR(669.9,"_RMPOXITE_",",DA(1)=RMPOXITE
|
---|
75 | . S DIK=DIK_""""_RMDBAT_""""_"," D ^DIK
|
---|
76 | K DIK,DA
|
---|
77 | ;
|
---|
78 | G AMEND
|
---|
79 | ;
|
---|
80 | ADD ; Add patient to the list entry.
|
---|
81 | D FULL^VALM1 W @IOF
|
---|
82 | K DIC,RMPODFN
|
---|
83 | S DIC("S")="I '$D(^TMP($J,RMPOXITE,""RMPODEMO"",+Y)),$D(^RMPR(665,+Y,""RMPOA"")),$P(^(""RMPOA""),U,3)="""",$P(^(0),U,2)=RMPOSITE"
|
---|
84 | DIC S DIC="^RMPR(665,",DIC(0)="EAMQN" D ^DIC I Y<0 G AMEND
|
---|
85 | S RMPORX=$P($G(^RMPR(665,+Y,"RMPOB",0)),U,3) G:'$G(RMPORX) DIC
|
---|
86 | I $G(RMPORX),'$D(^RMPR(665,+Y,"RMPOB",RMPORX,0)) W !,"Patient has no current prescription!!" G DIC
|
---|
87 | S RMDEXP=$P(^RMPR(665,+Y,"RMPOB",RMPORX,0),U,3)
|
---|
88 | I RMPORX,RMDEXP,RMDEXP<DT W !,"Rx prescription has expired - Unable to ADD patient to the list !!",! G DIC
|
---|
89 | S RMPODFN=+Y,ADT=$P($G(^RMPR(665,+Y,"RMPOA")),U,2)
|
---|
90 | ;
|
---|
91 | GETPAT ;get patient information(demographics)
|
---|
92 | D EXTRCT^RMPOLZA
|
---|
93 | S RMPONAM=$P(^TMP($J,RMPOXITE,"RMPODEMO",RMPODFN),U,1)
|
---|
94 | ;S RMI="",RMPOLTR=0 F S RMI=$O(^TMP($J,RMPOXITE,"RMPOLST",RMPOLCD,RMI)) Q:RMI="" S RMPOLTR=$P(^(RMI),U,1)
|
---|
95 | S RMCOD=$S(RMPOLCD="A":"RMPOXBAT1",RMPOLCD="B":"RMPOXBAT2",RMPOLCD="C":"RMPOXBAT3",1:"")
|
---|
96 | ;add the code to delete the entry in 665 for P and D entries and the dates.
|
---|
97 | Q:$D(^RMPR(669.9,RMPOXITE,RMCOD,"B",RMPODFN))
|
---|
98 | K DD,DO S DA(1)=RMPOXITE,DIC="^RMPR(669.9,"_RMPOXITE_","_""""_RMCOD_""""_","
|
---|
99 | S DIC(0)="L",X=RMPODFN,DLAYGO=669.9 D FILE^DICN
|
---|
100 | I '$D(DA) W !,"Patient was not added!!!" Q
|
---|
101 | S RMPOLTR=$G(LTRX("C",RMPOLCD))
|
---|
102 | S ^TMP($J,RMPOXITE,"RMPOLST",RMPOLCD,RMPONAM)=RMPOLTR_"^"_RMPODFN_"^"_DA
|
---|
103 | K DIC,DA,X
|
---|
104 | ;
|
---|
105 | AMEND ; delete listman data and rebuild list from amended work file
|
---|
106 | D CLEAN^VALM10,INIT
|
---|
107 | Q:'$D(@VALMAR) ; Quit if there are no entries in list
|
---|
108 | S VALMBCK="R"
|
---|
109 | Q
|
---|