[613] | 1 | TIUPRF1 ; SLC/JMH - Modules for Patient Record Flags ; 1/9/06
|
---|
| 2 | ;;1.0;TEXT INTEGRATION UTILITIES;**184**;Jun 20, 1997
|
---|
| 3 | ;
|
---|
| 4 | SELECT(TIUTTL,DFN,TIUDA) ; Select flag action for VISTA
|
---|
| 5 | ;Requires:
|
---|
| 6 | ; TIUTTL - 8925.1 IEN
|
---|
| 7 | ; DFN - Patient IEN
|
---|
| 8 | ;Optional:
|
---|
| 9 | ; TIUDA - Note IEN: If user picks the link that TIUDA is already
|
---|
| 10 | ; linked to, question the pick
|
---|
| 11 | ;Returns:
|
---|
| 12 | ; PRFAssignmentIEN^PRFAssignmentHistoryIEN or
|
---|
| 13 | ; 0^msg ;
|
---|
| 14 | ; LINEOK = Line of action selected by user
|
---|
| 15 | ; TIUAGN = 2 if note TIUDA is already linked to selected action
|
---|
| 16 | ; TIUAGN = 1 if Assignment History IEN selected by user already has
|
---|
| 17 | ; another note linked to it
|
---|
| 18 | N TIUDG,TIUER,TIURET,TIUAGN,LKBLARR
|
---|
| 19 | N FLAGNM,HASFLAG,AVAIL,LINKBL,UNLINKBL,TIUJ
|
---|
| 20 | S TIUAGN=0,HASFLAG=1
|
---|
| 21 | S FLAGNM=$$FNDFLAG^TIUPRFL(TIUTTL)
|
---|
| 22 | I 'FLAGNM S HASFLAG=0
|
---|
| 23 | S FLAGNM=$S(HASFLAG:$P(FLAGNM,U,2),1:"UNKNOWN")
|
---|
| 24 | S TIUDG=$$GETHTIU^DGPFAPI1(DFN,+$G(TIUTTL),"^TMP(""TIUPRFH"",$J)")
|
---|
| 25 | F D Q:'TIUAGN
|
---|
| 26 | . I 'TIUAGN W !!,"This Note must be linked to Patient Record Flag:",!," ",FLAGNM,!," Checking for available Flag Actions...",!
|
---|
| 27 | . I 'TIUDG S TIURET="0^"_$P(TIUDG,U,2) D Q
|
---|
| 28 | . . W !,$P(TIUDG,U,2),"!",!
|
---|
| 29 | . . I $$READ^TIUU("EA","RETURN to continue...") ; pause
|
---|
| 30 | . S AVAIL=$$AVAILACT^TIUPRFL("^TMP(""TIUPRFH"",$J)",.LINKBL,.UNLINKBL)
|
---|
| 31 | . I 'AVAIL D Q
|
---|
| 32 | . . S TIURET="0^All linked"
|
---|
| 33 | . . W !,"All linkable Flag actions for this Patient and Title are already linked!",!
|
---|
| 34 | . . I $$READ^TIUU("EA","RETURN to continue...") ; pause
|
---|
| 35 | . I TIUAGN=1 W " ?? This action already has a note linked to it.",! S TIUAGN=0
|
---|
| 36 | . I TIUAGN=2 W " ?? The note is already linked to this action.",! S TIUAGN=0
|
---|
| 37 | . ; -- If flag assgnmt array has unlinkable actions, omit them and set
|
---|
| 38 | . ; a new arr starting subscript at 1:
|
---|
| 39 | . I UNLINKBL D S LKBLARR="^TMP(""TIUPRFLKBL"",$J)"
|
---|
| 40 | . . F TIUJ=1:1:LINKBL M ^TMP("TIUPRFLKBL",$J,"HISTORY",TIUJ)=^TMP("TIUPRFH",$J,"HISTORY",TIUJ+UNLINKBL)
|
---|
| 41 | . I 'UNLINKBL S LKBLARR="^TMP(""TIUPRFH"",$J)"
|
---|
| 42 | . ; Display all linkable actions and prompt user to select one:
|
---|
| 43 | . W !,"Please select a Patient Record Flag Assignment Action: "
|
---|
| 44 | . W !,?7,"Date",?27,"Action",?52,"Note"
|
---|
| 45 | . S (TIUER,LINEOK)=0
|
---|
| 46 | . ; -- Display the flag actions and ask for choice in BREAK
|
---|
| 47 | . F LINENO=1:1:LINKBL D Q:+TIUER!+LINEOK
|
---|
| 48 | . . D WRITE(LINENO) I '(LINENO#5) D BREAK(LINENO,LINKBL,.TIUER,.LINEOK)
|
---|
| 49 | . I LINENO#5 D BREAK(LINENO,LINKBL,.TIUER,.LINEOK)
|
---|
| 50 | . ; -- Check if user ^ out
|
---|
| 51 | . I TIUER S TIURET="0^USER EXITED" Q
|
---|
| 52 | . S TIURET=+^TMP("TIUPRFH",$J,"ASSIGNIEN")_U_+@LKBLARR@("HISTORY",LINEOK,"HISTIEN")
|
---|
| 53 | . ; -- If action already has a note linked to it, try again:
|
---|
| 54 | . I +$G(TIUDA),+@LKBLARR@("HISTORY",LINEOK,"TIUIEN")=$G(TIUDA) S TIUAGN=2 Q
|
---|
| 55 | . I @LKBLARR@("HISTORY",LINEOK,"TIUIEN") S TIUAGN=1 Q
|
---|
| 56 | SELECTQ K ^TMP("TIUPRFH",$J),^TMP("TIUPRFLKBL",$J)
|
---|
| 57 | Q TIURET
|
---|
| 58 | ;
|
---|
| 59 | BREAK(LINENO,LINKBL,TIUER,LINEOK) ; Handle prompting
|
---|
| 60 | N TIUX,MORE
|
---|
| 61 | S MORE=$S(LINKBL>LINENO:1,1:0)
|
---|
| 62 | BREAK1 ;
|
---|
| 63 | W !,"CHOOSE 1-",LINENO
|
---|
| 64 | I MORE W !,"<RETURN> TO CONTINUE",!,"OR '^' TO QUIT"
|
---|
| 65 | W ": " R TIUX:DTIME
|
---|
| 66 | I $S('$T!(TIUX["^"):1,TIUX=""&'MORE:1,1:0) S TIUER=1 Q
|
---|
| 67 | I TIUX="" Q
|
---|
| 68 | I TIUX'=+TIUX!'$D(@LKBLARR@("HISTORY",+TIUX)) W !!,$C(7),"INVALID RESPONSE",! G BREAK1
|
---|
| 69 | S LINEOK=TIUX
|
---|
| 70 | Q
|
---|
| 71 | ;
|
---|
| 72 | WRITE(LINENO) ; write the selectable item
|
---|
| 73 | ; Uses LKBLARR
|
---|
| 74 | N TIUX,TIUIEN,TIUAHIST,REFDT
|
---|
| 75 | S TIUX=$P($G(@LKBLARR@("HISTORY",LINENO,"DATETIME")),U)
|
---|
| 76 | W !,?2,LINENO,">",?7,$$FMTE^XLFDT(TIUX,"2D")
|
---|
| 77 | W ?27,$P(@LKBLARR@("HISTORY",LINENO,"ACTION"),U,2),?52
|
---|
| 78 | S TIUIEN=+@LKBLARR@("HISTORY",LINENO,"TIUIEN")
|
---|
| 79 | S TIUAHIST=+@LKBLARR@("HISTORY",LINENO,"HISTIEN")
|
---|
| 80 | I TIUIEN S REFDT=+$G(^TIU(8925,TIUIEN,13)),REFDT=$$DATE^TIULS(REFDT,"MM/DD/YY HR:MIN") W REFDT
|
---|
| 81 | Q
|
---|
| 82 | ;
|
---|
| 83 | LINK(TIUDA,ASSGNDA,ACTDA,DFN) ;links a note to a flag assignment action
|
---|
| 84 | ;for patient DFN.
|
---|
| 85 | ; Returns 1 if successful otherwise 0^"error message"
|
---|
| 86 | N TIUTTL
|
---|
| 87 | S TIUTTL=+$G(^TIU(8925,TIUDA,0))
|
---|
| 88 | I 'TIUTTL Q "0^Document does not exist"
|
---|
| 89 | ; -- GUI doesn't link if we check if TIUDA is PRF note, so don't
|
---|
| 90 | ;I '$$ISPFTTL^TIUPRFL(TIUTTL) Q "0^Can't link non-PRF notes"
|
---|
| 91 | S TIURES=$$STOTIU^DGPFAPI2(DFN,ASSGNDA,ACTDA,TIUDA)
|
---|
| 92 | I 'TIURES Q TIURES
|
---|
| 93 | Q 1
|
---|
| 94 | UNLINK(TIUDA) ;removes any link the note TIUDA might have
|
---|
| 95 | N TIUTTL
|
---|
| 96 | S TIUTTL=+$G(^TIU(8925,TIUDA,0))
|
---|
| 97 | I 'TIUTTL Q
|
---|
| 98 | S TIURES=$$DELTIU^DGPFAPI2(TIUDA)
|
---|
| 99 | Q
|
---|
| 100 | RELINK(TIUDA,DFN) ; removes old link for TIUDA and links to new PRF assignment for patient DFN
|
---|
| 101 | ; returns 1 if successful otherwise 0^"error message"
|
---|
| 102 | N TIUPRF,TIUTTL,TIUASS,TIUACT,TIURES
|
---|
| 103 | S TIUTTL=+$G(^TIU(8925,TIUDA,0))
|
---|
| 104 | S TIUPRF=$$SELECT(TIUTTL,DFN,TIUDA)
|
---|
| 105 | I '+TIUPRF Q TIUPRF
|
---|
| 106 | S TIUASS=+TIUPRF,TIUACT=$P(TIUPRF,U,2)
|
---|
| 107 | D UNLINK(TIUDA)
|
---|
| 108 | S TIURES=$$LINK^TIUPRF1(TIUDA,TIUASS,TIUACT,DFN)
|
---|
| 109 | Q 1
|
---|
| 110 | ;
|
---|
| 111 | CHANGE(TIUDA) ; removes old link for TIUDA and links to new PRF assignment for TIUDA's patient
|
---|
| 112 | N DFN,TIUTTL,TIUPRF
|
---|
| 113 | S DFN=$P($G(^TIU(8925,TIUDA,0)),U,2)
|
---|
| 114 | S TIUTTL=+$G(^TIU(8925,TIUDA,0))
|
---|
| 115 | S TIUPRF=$$SELECT(TIUTTL,DFN,TIUDA)
|
---|
| 116 | I '+TIUPRF W !,"You must select an action ... Nothing (re)-linked." S TIUPOP=1 Q
|
---|
| 117 | S TIUASS=+TIUPRF,TIUACT=$P(TIUPRF,U,2)
|
---|
| 118 | D UNLINK(TIUDA)
|
---|
| 119 | S TIUPRF=$$LINK(TIUDA,TIUASS,TIUACT,DFN)
|
---|
| 120 | I '+TIUPRF S TIUPOP=1 Q
|
---|
| 121 | Q
|
---|
| 122 | ;
|
---|
| 123 | PRFCT(TIUOTTL,TIUNTTL,TIUDA) ; handles changing title situations for PRF notes in LM
|
---|
| 124 | N NEWISPRF,DFN,TIULINK,TIULINKC,OLDISPRF
|
---|
| 125 | S DFN=$P($G(^TIU(8925,TIUDA,0)),U,2)
|
---|
| 126 | S NEWISPRF=$$ISPFTTL^TIUPRFL(TIUNTTL)
|
---|
| 127 | S OLDISPRF=$$ISPFTTL^TIUPRFL(TIUOTTL)
|
---|
| 128 | ;-- non PRF title to PRF title
|
---|
| 129 | I NEWISPRF,'OLDISPRF D Q
|
---|
| 130 | . W !,"The Title you selected is a PRF Title."
|
---|
| 131 | . W !," PRF Notes must be linked to Patient Record Flags.",!
|
---|
| 132 | . W !,"Do you want to continue with this Change Title Action?"
|
---|
| 133 | . I +$$READ^TIUU("YO",,"N")'>0 S TIUQUIT=1 W !,"Title not changed." Q
|
---|
| 134 | . S TIULINK=$$SELECT^TIUPRF1(TIUNTTL,DFN)
|
---|
| 135 | . I 'TIULINK S TIUQUIT=1 W !,"Title not changed." Q
|
---|
| 136 | . ; -- get new link
|
---|
| 137 | . S TIULINKC=$$LINK^TIUPRF1(TIUDA,+TIULINK,$P(TIULINK,U,2),DFN)
|
---|
| 138 | ;-- PRF title to PRF title
|
---|
| 139 | I NEWISPRF,OLDISPRF D Q
|
---|
| 140 | . W !,"This document is already attached to a Patient Record"
|
---|
| 141 | . W !," Flag. It will be unlinked from the current flag"
|
---|
| 142 | . W !," and linked to a new flag.",!
|
---|
| 143 | . W !,"Do you want to continue with this Change Title Action?"
|
---|
| 144 | . I +$$READ^TIUU("YO",,"N")'>0 S TIUQUIT=1 W !,"Title not changed." Q
|
---|
| 145 | . ; -- get new PRF Assignment to link to
|
---|
| 146 | . S TIULINK=$$SELECT^TIUPRF1(TIUNTTL,DFN)
|
---|
| 147 | . I 'TIULINK S TIUQUIT=1 W !,"Title not changed." Q
|
---|
| 148 | . D UNLINK^TIUPRF1(+TIUDA)
|
---|
| 149 | . S TIULINKC=$$LINK^TIUPRF1(TIUDA,+TIULINK,$P(TIULINK,U,2),DFN)
|
---|
| 150 | ; -- PRF title to non PRF title
|
---|
| 151 | I 'NEWISPRF,OLDISPRF D Q
|
---|
| 152 | . W !,"The Title you selected is not a PRF Title."
|
---|
| 153 | . W !," The note is currently linked to a Patient Record Flag,"
|
---|
| 154 | . W !," but will be unlinked when the title is changed"
|
---|
| 155 | . W !," to a non-PRF Title.",!
|
---|
| 156 | . W !,"Do you want to continue with this Change Title Action?"
|
---|
| 157 | . I +$$READ^TIUU("YO",,"N")'>0 S TIUQUIT=1 W !,"Title not changed." Q
|
---|
| 158 | . D UNLINK^TIUPRF1(+TIUDA)
|
---|
| 159 | Q
|
---|
| 160 | ;
|
---|
| 161 | GETLINK(TIUTYP,DFN,TIUDA) ; Ask user for link for NEW note and link it. Return success or failure
|
---|
| 162 | N TIUPRF,TIUPRFL
|
---|
| 163 | S TIUPRF=$$SELECT^TIUPRF1(TIUTYP,DFN)
|
---|
| 164 | I 'TIUPRF W !,"Patient Record Flag Notes must be linked to Flag Actions.",! Q 0
|
---|
| 165 | S TIUPRFL=$$LINK^TIUPRF1(TIUDA,$P(TIUPRF,U,1),$P(TIUPRF,U,2),DFN)
|
---|
| 166 | I 'TIUPRFL W !,$P(TIUPRFL,U,2),! Q 0
|
---|
| 167 | Q 1
|
---|