[613] | 1 | QACALRT1 ;HISC/DAD-PROCESS AN ALERT ;3/23/95 10:22
|
---|
| 2 | ;;2.0;Patient Representative;**3,7,6,9,12**;07/25/1995
|
---|
| 3 | EN ;
|
---|
| 4 | N QACDATE
|
---|
| 5 | K QACDELET
|
---|
| 6 | S QACX=$P(XQADATA,U),QACD0=$P(XQADATA,U,2),QACDUZ=$P(XQADATA,U,3)
|
---|
| 7 | S QACXQAID=$P(XQAID,";")
|
---|
| 8 | ;
|
---|
| 9 | ; Display contact information when alert processed.
|
---|
| 10 | S QAC=QACD0,QACRES=0 D START1^QACRPT
|
---|
| 11 | ;
|
---|
| 12 | S QAC=$S($D(^QA(745.1,QACD0,0))[0:1,$P($G(^(7)),U,2)="C":2,1:0)
|
---|
| 13 | I QAC D G EXIT
|
---|
| 14 | . W !!?5,"*** The Patient Rep record associated with this alert"
|
---|
| 15 | . W ?63,"***",!?5,"*** has been ",$P("deleted^closed",U,QAC)
|
---|
| 16 | . W ". No response needed, killing alert.",?63,"***",$C(7)
|
---|
| 17 | . D KILLALRT
|
---|
| 18 | . Q
|
---|
| 19 | ;
|
---|
| 20 | I $O(^XTMP(QACXQAID,"TXT",0)) D
|
---|
| 21 | . W !!?5,"*** You have an unsent response to this alert. ***",$C(7)
|
---|
| 22 | . Q
|
---|
| 23 | ;
|
---|
| 24 | ; Alert action (Respond / Ignore / Delete / Print)
|
---|
| 25 | K DIR S QACACTN=""
|
---|
| 26 | F D Q:QACACTN]""
|
---|
| 27 | . S DIR(0)="SOM^R:Respond;I:Ignore;D:Delete;P:Print"
|
---|
| 28 | . S DIR("A")="Alert action"
|
---|
| 29 | . S DIR("?",1)=" Enter (R)espond to enter your response to this alert."
|
---|
| 30 | . S DIR("?",2)=" Enter (I)gnore to save this alert for a later response."
|
---|
| 31 | . S DIR("?",3)=" Enter (D)elete to delete this alert without a response."
|
---|
| 32 | . S DIR("?",4)=" Enter (P)rint to print the report of contact."
|
---|
| 33 | . S DIR("?")=" Enter one of the codes listed above."
|
---|
| 34 | . W ! D ^DIR S QACACTN=$S($D(DIRUT):U,1:Y)
|
---|
| 35 | . I QACACTN="P" D
|
---|
| 36 | .. S QAC=QACD0,QACRES=0
|
---|
| 37 | .. N QACD0,QACX,QACXQAID
|
---|
| 38 | .. D EN^QACRPT
|
---|
| 39 | .. S QACACTN="",DIR("B")="Ignore"
|
---|
| 40 | .. Q
|
---|
| 41 | . Q
|
---|
| 42 | I (QACACTN="I")!(QACACTN=U) D SAVEALRT
|
---|
| 43 | I QACACTN="D" S QACDELET=1 D RESPOND,KILLALRT
|
---|
| 44 | I QACACTN="R" D RESPOND
|
---|
| 45 | G EXIT
|
---|
| 46 | ;
|
---|
| 47 | RESPOND ; Get user's response
|
---|
| 48 | I $O(^XTMP(QACXQAID,"TXT",0))'>0 K ^XTMP(QACXQAID)
|
---|
| 49 | K DIC,DIWEPSE,DTOUT,DWLW,DWPK
|
---|
| 50 | S ^XTMP(QACXQAID,0)=$$FMADD^XLFDT(DT,14)_U_DT
|
---|
| 51 | I $G(QACDELET)<1 D
|
---|
| 52 | . S DIC="^XTMP("""_QACXQAID_""",""TXT"","
|
---|
| 53 | . D EN^DIWE
|
---|
| 54 | I $G(QACDELET)=1 D DELMSG
|
---|
| 55 | I $O(^XTMP(QACXQAID,"TXT",0))'>0 K ^XTMP(QACXQAID) D SAVEALRT Q
|
---|
| 56 | I $D(DTOUT) D Q
|
---|
| 57 | . W $C(7),!
|
---|
| 58 | . W !?5,"*** You have timed out while entering a response. ***"
|
---|
| 59 | . W !?5,"*** The text can be recovered if you re-enter the alert. ***"
|
---|
| 60 | . W !?5,"*** If not, it will be automatically purged in two weeks. ***"
|
---|
| 61 | . D SAVEALRT
|
---|
| 62 | . Q
|
---|
| 63 | S QACX(0)=$P($G(^VA(200,QACX,0)),U) I QACX(0)="" S QACX(0)="UNKNOWN"
|
---|
| 64 | S QACHDR="*** "_$$FMTE^XLFDT($$NOW^XLFDT,"2PS")_" "_QACX(0)_" ***"
|
---|
| 65 | S ^XTMP(QACXQAID,"TXT",.1,0)=""
|
---|
| 66 | S ^XTMP(QACXQAID,"TXT",.2,0)=QACHDR
|
---|
| 67 | S ^XTMP(QACXQAID,"TXT",.3,0)=""
|
---|
| 68 | ; Save user's response
|
---|
| 69 | W !!,"Saving your response, please wait . . . "
|
---|
| 70 | K ^TMP("QACALRT1",$J)
|
---|
| 71 | S %X="^XTMP("""_QACXQAID_""",""TXT"","
|
---|
| 72 | S %Y="^TMP(""QACALRT1"",$J,"
|
---|
| 73 | D %XY^%RCR
|
---|
| 74 | S ZTRTN="TASK^QACALRT1",ZTDESC="Patient Rep resolution comments update"
|
---|
| 75 | S (ZTSAVE("QACD0"),ZTSAVE("^TMP(""QACALRT1"",$J,"),ZTIO)="",ZTDTH=$H
|
---|
| 76 | S (ZTSAVE("QACX"),ZTSAVE("QACDUZ"))=""
|
---|
| 77 | S ZTSAVE("QACDELET")=""
|
---|
| 78 | D ^%ZTLOAD
|
---|
| 79 | W "Done"
|
---|
| 80 | KILLALRT ; Kill this alert
|
---|
| 81 | K ^XTMP(QACXQAID)
|
---|
| 82 | S XQAKILL=1
|
---|
| 83 | Q
|
---|
| 84 | SAVEALRT ; Do not kill this alert
|
---|
| 85 | K XQAKILL
|
---|
| 86 | Q
|
---|
| 87 | ;
|
---|
| 88 | TASK ; Tasked entry point
|
---|
| 89 | F L +^QA(745.1,QACD0):5 Q:$T H 5
|
---|
| 90 | I $D(^QA(745.1,QACD0,0))[0 L -^QA(745.1,QACD0) G EXIT
|
---|
| 91 | S (QACD1,QACD1(0))=0
|
---|
| 92 | F S QACD1=$O(^QA(745.1,QACD0,6,QACD1)) Q:QACD1'>0 S QACD1(0)=QACD1
|
---|
| 93 | S (QACTMP,QACOUNT)=0
|
---|
| 94 | F S QACTMP=$O(^TMP("QACALRT1",$J,QACTMP)) Q:QACTMP'>0 D
|
---|
| 95 | . S QACOUNT=QACOUNT+1
|
---|
| 96 | . S ^QA(745.1,QACD0,6,QACD1(0)+QACOUNT,0)=^TMP("QACALRT1",$J,QACTMP,0)
|
---|
| 97 | . Q
|
---|
| 98 | S QACOUNT=QACOUNT+1
|
---|
| 99 | S ^QA(745.1,QACD0,6,QACD1(0)+QACOUNT,0)=""
|
---|
| 100 | S QACOUNT=QACOUNT+1
|
---|
| 101 | S ^QA(745.1,QACD0,6,QACD1(0)+QACOUNT,0)="*** End of response ***"
|
---|
| 102 | S QACWPHDR=$G(^QA(745.1,QACD0,6,0))
|
---|
| 103 | S $P(QACWPHDR,U,3)=($P(QACWPHDR,U,3)+QACOUNT)
|
---|
| 104 | S $P(QACWPHDR,U,4)=($P(QACWPHDR,U,4)+QACOUNT)
|
---|
| 105 | S $P(QACWPHDR,U,5)=DT
|
---|
| 106 | S ^QA(745.1,QACD0,6,0)=QACWPHDR
|
---|
| 107 | L -^QA(745.1,QACD0)
|
---|
| 108 | S QACX(0)=$P($G(^VA(200,+QACX,0)),U) S:QACX(0)="" QACX(0)="UNKNOWN"
|
---|
| 109 | S QACCASE=$P($G(^QA(745.1,+QACD0,0)),U) S:QACCASE="" QACCASE="UNKNOWN"
|
---|
| 110 | S XQA(+QACDUZ)=""
|
---|
| 111 | S XQAMSG="Patient Rep response by "_QACX(0)_" to "_QACCASE_"."
|
---|
| 112 | I $G(QACDELET)=1 S XQAMSG="Patient Rep Alert "_QACCASE_" deleted by "_QACX(0)_"."
|
---|
| 113 | D SETUP^XQALERT
|
---|
| 114 | ;D SET^QACALRT0(+QACDUZ,QACD0)
|
---|
| 115 | EXIT ;
|
---|
| 116 | S:$D(ZTQUEUED) ZTREQ="@"
|
---|
| 117 | K DIC,DIR,DIROUT,DIRUT,DTOUT,DUOUT,QAC,QACACTN,QACCASE,QACD0,QACD1
|
---|
| 118 | K QACDUZ,QACEE,QACHDR,QACOUNT,QACRES,QACTMP,QACWPHDR,QACX,QACXQAID,X,Y
|
---|
| 119 | K ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE,^TMP("QACALRT1",$J),%X,%Y
|
---|
| 120 | Q
|
---|
| 121 | DELMSG ;If user deletes an alert on a report of contact a message is sent
|
---|
| 122 | ;as if it were a response to the alert. It will be stored in the
|
---|
| 123 | ;Resolution Comments field.
|
---|
| 124 | S $P(^XTMP(QACXQAID,"TXT",0),U,5)=DT
|
---|
| 125 | F QACEE=3,4 S $P(^XTMP(QACXQAID,"TXT",0),U,QACEE)=$P(^XTMP(QACXQAID,"TXT",0),U,QACEE)+1
|
---|
| 126 | S Y=DT D DD^%DT S QACDATE=Y
|
---|
| 127 | S QACNAME=$P($P(^VA(200,DUZ,0),U),",",2)_" "_$P($P(^VA(200,DUZ,0),U),",")
|
---|
| 128 | S ^XTMP(QACXQAID,"TXT",1,0)="VA Alert on Report of Contact "_$P(QACXQAID,"-",2)_" deleted by "_QACNAME_" on "_QACDATE
|
---|
| 129 | Q
|
---|