[613] | 1 | QANEDIT ;WCIOFO/ERC-Edit a Brief Incident ;4/22/99
|
---|
| 2 | ;;2.0;Incident Reporting;**27,26,32**;08/07/1992;Build 3
|
---|
| 3 | ;
|
---|
| 4 | START ;
|
---|
| 5 | W @IOF
|
---|
| 6 | N QANBFLG,QANIEN,QANNOPAT
|
---|
| 7 | F W !!,"Do you want to edit one of your open Incident Reports" S %=1 D YN^DICN Q:"-112"[% W !!,"Enter (Y)es, (N)o or ""^"" to exit"
|
---|
| 8 | I %=1 D EDIT
|
---|
| 9 | K QANXIT
|
---|
| 10 | Q
|
---|
| 11 | EDIT ;
|
---|
| 12 | K ^TMP("QAN EDIT")
|
---|
| 13 | S QANCNT=1
|
---|
| 14 | S QANDUZ=DUZ
|
---|
| 15 | S QANEE=0
|
---|
| 16 | F S QANEE=$O(^QA(742.4,"ACS",1,QANEE)) Q:QANEE'>0 D
|
---|
| 17 | . I QANDUZ=$P(^QA(742.4,QANEE,0),U,5) S ^TMP("QAN EDIT",$J,QANCNT,QANEE)="",QANCNT=QANCNT+1
|
---|
| 18 | W @IOF
|
---|
| 19 | I '$D(^TMP("QAN EDIT")) D Q
|
---|
| 20 | . W !!,"**** You have no open Incident Reports to edit. Exiting.",!!
|
---|
| 21 | W !!,"Here are your open Incident Reports."
|
---|
| 22 | S QANEE=0
|
---|
| 23 | S QANTOT=0
|
---|
| 24 | F S QANEE=$O(^TMP("QAN EDIT",$J,QANEE)) Q:QANEE'>0 D
|
---|
| 25 | . S QANIEN=$O(^TMP("QAN EDIT",$J,QANEE,0)) Q:QANIEN'>0
|
---|
| 26 | . S QAN0=^QA(742.4,QANIEN,0)
|
---|
| 27 | . S QANCC=0,QANCNT=1
|
---|
| 28 | . S QANTOT=QANTOT+1 ;gets number of IRs for selecting record to edit
|
---|
| 29 | . F S QANCC=$O(^QA(742,"BCS",QANIEN,QANCC)) Q:QANCC'>0 D
|
---|
| 30 | . . S QANNAME=$P(^DPT($P(^QA(742,QANCC,0),U),0),U)
|
---|
| 31 | . . S Y=$P(QAN0,U,3) D DD^%DT S QANDATE=Y
|
---|
| 32 | . . S QANINC=$P(^QA(742.1,$P(QAN0,U,2),0),U)
|
---|
| 33 | . . I $Y>(IOSL-6) K DIR S DIR(0)="E" D ^DIR K DIR W @IOF
|
---|
| 34 | . . I QANCNT=1 W !,QANEE,?4,QANDATE,?25,$E(QANINC,1,25),?51,QANNAME
|
---|
| 35 | . . I QANCNT>1 W !?51,QANNAME
|
---|
| 36 | . . S QANCNT=QANCNT+1
|
---|
| 37 | DIR ;
|
---|
| 38 | I $G(QANTOT)=1 S QANIEN=$O(^TMP("QAN EDIT",$J,1,0)) G DIE
|
---|
| 39 | K DIR
|
---|
| 40 | S DIR(0)="NOA"
|
---|
| 41 | S DIR("A")="Select a number from 1 to "_QANTOT_": "
|
---|
| 42 | D ^DIR K DIR Q:$D(DIRUT)!(+Y<1)
|
---|
| 43 | I +Y>QANTOT W !,"Number selected must be from 1 to "_QANTOT_", try again." G DIR
|
---|
| 44 | S QANIEN=$O(^TMP("QAN EDIT",$J,+Y,0))
|
---|
| 45 | I $G(QANIEN)]"",($D(^QA(742.4,QANIEN,0))) D
|
---|
| 46 | . L +^QA(742.4,QANIEN):5 I '$T W !!,"Another user is editing this record." Q
|
---|
| 47 | . S QANEDFLG=1
|
---|
| 48 | . D DIE
|
---|
| 49 | . I $O(^QA(742,"BCS",QANIEN,0))']"" D
|
---|
| 50 | . . ;if no patients entered, delete the incident
|
---|
| 51 | . . W !!,"No patients on this Incident Report - deleting Report."
|
---|
| 52 | . . S DIK="^QA(742.4,",DA=QANIEN D ^DIK K DIK
|
---|
| 53 | . D EXIT
|
---|
| 54 | Q
|
---|
| 55 | DIE ;
|
---|
| 56 | W !!
|
---|
| 57 | N QANCNT,QANEE
|
---|
| 58 | S QANEFLG=0
|
---|
| 59 | S QANEE=0
|
---|
| 60 | S QANCNT=1
|
---|
| 61 | F S QANEE=$O(^QA(742,"BCS",QANIEN,QANEE)) Q:QANEE'>0 D
|
---|
| 62 | . S QANPAT(QANCNT)=QANEE
|
---|
| 63 | . S QANCNT=QANCNT+1
|
---|
| 64 | K DIE S DIE="^QA(742.4,",DA=QANIEN,DR=".02;.03;.04"
|
---|
| 65 | D ^DIE K DIE
|
---|
| 66 | L -^QA(742.4,QANIEN)
|
---|
| 67 | PAT ;edit patient(s) on report
|
---|
| 68 | ;if no patients entered go directly to PTADD
|
---|
| 69 | I $O(^QA(742,"BCS",QANIEN,0))']"" G PTADD
|
---|
| 70 | K QANPNAM,QANPNUM
|
---|
| 71 | W !,"Patient(s) on this Incident Report."
|
---|
| 72 | S QANEE=0
|
---|
| 73 | S QANCNT=1
|
---|
| 74 | F S QANEE=$O(QANPAT(QANEE)) Q:QANEE'>0 D
|
---|
| 75 | . S QANPNUM(QANEE)=$P(^QA(742,QANPAT(QANEE),0),U)
|
---|
| 76 | . S QANPNAM(QANEE)=$P(^DPT(QANPNUM(QANEE),0),U)
|
---|
| 77 | . W !?5,QANCNT," ",QANPNAM(QANEE)
|
---|
| 78 | . S QANCNT=QANCNT+1
|
---|
| 79 | S DIR("A")="Is this correct"
|
---|
| 80 | S DIR("B")="YES"
|
---|
| 81 | S DIR(0)="Y"
|
---|
| 82 | D ^DIR K DIR Q:$D(DIRUT)
|
---|
| 83 | I Y<1 D
|
---|
| 84 | . S DIR(0)="Y",DIR("A")="Would you like to add a patient"
|
---|
| 85 | . S DIR("B")="YES"
|
---|
| 86 | . K DIRUT
|
---|
| 87 | . D ^DIR K DIR Q:$D(DIRUT)
|
---|
| 88 | . I Y=1 D PTADD S (QANEFLG,QANEDFLG)=1 Q
|
---|
| 89 | . ;deleting patients from record only allowed if editing a new record
|
---|
| 90 | . I $G(QANBFLG)'=1 Q
|
---|
| 91 | . K DIR S DIR(0)="Y",DIR("A")="Would you like to delete a patient"
|
---|
| 92 | . S DIR("B")="NO"
|
---|
| 93 | . K DIRUT
|
---|
| 94 | . D ^DIR K DIR Q:$D(DIRUT)
|
---|
| 95 | . I Y=1 D PTDEL S (QANEFLG,QANEDFLG)=1
|
---|
| 96 | ;if the user has deleted all patients and has not re-entered one,
|
---|
| 97 | ;exit the subroutine (a message will be displayed & the record deleted)
|
---|
| 98 | I $G(QANNOPAT)=1 K QANNOPAT Q
|
---|
| 99 | I $G(QANEFLG)=1 S QANEFLG=0 G PAT
|
---|
| 100 | ;if no patients on report skip description and witnessed and quit
|
---|
| 101 | I $O(^QA(742,"BCS",QANIEN,0))']"" Q
|
---|
| 102 | K DIE S DIE="^QA(742.4,",DR=".05;.08"
|
---|
| 103 | D ^DIE K DIE
|
---|
| 104 | Q
|
---|
| 105 | PTADD ;
|
---|
| 106 | K DIC S DIC="^DPT(",DIC(0)="QEAMNZ",DIC("A")="Select Patient: ",DIC("W")="W "" "",$P(^(0),U,9)",D="B^BS5"
|
---|
| 107 | D MIX^DIC1 K DIC
|
---|
| 108 | I +Y<1 S QANXIT=1 Q
|
---|
| 109 | F D Q:"-12"[%
|
---|
| 110 | . W !?5,$G(Y(0,0))_" OK"
|
---|
| 111 | . S %=1 D YN^DICN Q:"-12"[%
|
---|
| 112 | . W " Confirm that this is the correct patient."
|
---|
| 113 | I %=-1 S QANXIT=1 Q
|
---|
| 114 | I %=2 W " ??" G PTADD
|
---|
| 115 | S QANEE=0
|
---|
| 116 | F S QANEE=$O(QANPNUM(QANEE)) Q:QANEE'>0 D
|
---|
| 117 | . I +Y=QANPNUM(QANEE) W !!,$C(7),$P(^DPT(+Y,0),U)_" has been previously entered for this incident." K Y S QANXFLG=1 Q
|
---|
| 118 | I $G(QANXFLG)=1 S QANXFLG=0 G PTADD
|
---|
| 119 | I $D(^DPT(+Y,.35)),$P(^DPT(+Y,.35),U)]"",($P(^DPT(+Y,.35),U)<$P(^QA(742.4,QANIEN,0),U,3)) W !!,$C(7),"The date of death for patient: "_$P(^DPT(+Y,0),U)_" precedes the incident date." K Y G PTADD
|
---|
| 120 | S QANPIEN=+Y,QANZERO=Y(0),QANAME=Y(0,0),QANSSN=$P(QANZERO,U,9),^UTILITY($J,"QAN PAT",+Y)=""
|
---|
| 121 | S QANDOB=$P(^DPT(QANPIEN,0),U,3)
|
---|
| 122 | I QANDOB]"" S X=DT,X1=X,X2=QANDOB,X="" D:X2 ^%DTC S X=X\365.25,QANAGE=X
|
---|
| 123 | S QANPSDO(0)=Y(0),QANPSDO(0,0)=Y(0,0)
|
---|
| 124 | S QANPID=$$QANPID^QANCDNT(.Y)
|
---|
| 125 | D ADMDT^QANUTL1
|
---|
| 126 | K DIC,DD,DO,DINUM,DLAYGO S DLAYGO=742,DIC="^QA(742,",DIC(0)="L",X=QANPIEN D FILE^DICN K DIC,DD,DO,DINUM,DLAYGO
|
---|
| 127 | I +Y=-1,($G(QANFLAG)) S QANXIT=1 Q
|
---|
| 128 | S QANDFN=+Y
|
---|
| 129 | S $P(^QA(742,QANDFN,0),U,2,6)=QANPID_U_QANIEN_U_QANADMDT_U_QANINPAT_U_QANWARD
|
---|
| 130 | S $P(^QA(742,QANDFN,0),U,7)=QANTRSP,$P(^QA(742,QANDFN,0),U,12)=1
|
---|
| 131 | S DIK="^QA(742,",DA=QANDFN D IX1^DIK K DA,DIK
|
---|
| 132 | S QANNUM=$O(QANPAT(" "),-1)+1
|
---|
| 133 | S QANPAT(QANNUM)=QANDFN
|
---|
| 134 | S QANPNUM(QANNUM)=QANPIEN
|
---|
| 135 | S QANPNAM(QANNUM)=QANAME
|
---|
| 136 | S QANFLAG=1 D:'$D(QANF) BULL^QANUTL3
|
---|
| 137 | K QAUDIT S QAUDIT("FILE")="742^50",QAUDIT("DA")=QANDFN,QAUDIT("ACTION")="e",QAUDIT("COMMENT")="Edit a brief patient record" D ^QAQAUDIT
|
---|
| 138 | Q
|
---|
| 139 | PTDEL ;
|
---|
| 140 | S QANCC=0
|
---|
| 141 | F S QANCC=$O(QANPNUM(QANCC)) Q:QANCC'>0 D
|
---|
| 142 | . S QANNUM=QANCC
|
---|
| 143 | . W !?5,QANCC_" "_QANPNAM(QANCC)
|
---|
| 144 | I '$G(QANNUM) S QANXIT=1 Q
|
---|
| 145 | S DIR(0)="NOA"
|
---|
| 146 | S DIR("A")="Delete which patient number: "
|
---|
| 147 | D ^DIR K DIR Q:$D(DIRUT)
|
---|
| 148 | I $G(QANPNAM(+Y))']"" W !!?5,"Choice must be one of the displayed numbers." G PTDEL
|
---|
| 149 | I Y>QANNUM W !!?5,"Answer must be a number less than ",QANNUM+1 G PTDEL
|
---|
| 150 | I Y<1 S QANXIT=1 Q
|
---|
| 151 | S QANTEMP=+Y
|
---|
| 152 | S QANDFN=QANPAT(+Y)
|
---|
| 153 | S QANAME=QANPNAM(+Y)
|
---|
| 154 | S DIK="^QA(742,",DA=QANPAT(+Y) D ^DIK
|
---|
| 155 | ;D BULL^QANUTL3
|
---|
| 156 | ;K QAUDIT S QAUDIT("FILE")="742^50",QAUDIT("DA")=QANDFN,QAUDIT("ACTION")="d",QAUDIT("COMMENT")="Delete a brief patient record" D ^QAQAUDIT
|
---|
| 157 | K QANPAT(QANTEMP),QANPNUM(QANTEMP),QANPNAM(QANTEMP)
|
---|
| 158 | ;if there are no patients on the report set a flag and go back to PTADD
|
---|
| 159 | I $O(^QA(742,"BCS",QANIEN,0))']"" W !!,"You must have at least one patient on an incident report." S QANNOPAT=1 G PTADD
|
---|
| 160 | G PTDEL
|
---|
| 161 | Q
|
---|
| 162 | EXIT ;
|
---|
| 163 | K QAN0,QANADMDT,QANCC,QANCNT,QANDATE,QANDFN,QANDOB,QANEE
|
---|
| 164 | K QANEDFLG,QANELFG,QANFLAG,QANIEN,QANINC,QANAME,QANNAME,QANNOPAT
|
---|
| 165 | K QANNUM,QANPAT,QANPID,QANPIEN,QANPNAM,QANPNUM,QANPSDO,QANTEMP
|
---|
| 166 | K QANTOT,QANTRSP,QANXFLG,QANXIT,QANY,QANZERO
|
---|
| 167 | Q
|
---|
| 168 | DIKAUDIT(QANFIL) ;
|
---|
| 169 | ;deletes the entries for this Incident Report from
|
---|
| 170 | ;the QA Audit file. Input is the QA file (742 for the patient,
|
---|
| 171 | ;742.4 for the incident).
|
---|
| 172 | ;
|
---|
| 173 | S QANID=$S(QANFIL=742:QANDFN,1:QANIEN)
|
---|
| 174 | S QANEE=$O(^QA(740.5,"B",QANFIL," "),-1)+1
|
---|
| 175 | F S QANEE=$O(^QA(740.5,"B",QANFIL,QANEE),-1) Q:QANEE'>0 I $P(^QA(740.5,QANEE,0),U,2)=QANID S QANAUD=QANID Q
|
---|
| 176 | I $G(QANAUD)]"" D
|
---|
| 177 | . S DIK="^QA(740.5,",DA=QANEE
|
---|
| 178 | . D ^DIK K DIK
|
---|
| 179 | . K QANID,QANAUD,QANEE
|
---|
| 180 | Q
|
---|