| 1 | TIURD3  ; SLC/JER - Reassign actions ;11/01/03
 | 
|---|
| 2 |  ;;1.0;TEXT INTEGRATION UTILITIES;**61,124,113,112**;Jun 20, 1997
 | 
|---|
| 3 | REASSIGO ; Reassign an original Document
 | 
|---|
| 4 |  N TIU,TIUASK,TIUDPRM
 | 
|---|
| 5 |  W !!,"Please choose the correct PATIENT and CARE EPISODE:",!
 | 
|---|
| 6 |  ; --- Get a patient ---
 | 
|---|
| 7 |  S DFN=+$$PATIENT^TIULA
 | 
|---|
| 8 |  ; --- If no pt. selected, QUIT ---
 | 
|---|
| 9 |  I +$G(DFN)'>0 D  Q
 | 
|---|
| 10 |  . S TIUOUT=1
 | 
|---|
| 11 |  . W !!,"No PATIENT Selected: Aborting Transaction, No Harm Done...",!
 | 
|---|
| 12 |  . I $$READ^TIUU("EA","Press RETURN to continue...") ; pause
 | 
|---|
| 13 |  ; --- If document is a Surgical Report, redirect processing ---
 | 
|---|
| 14 |  I +$$ISA^TIULX(TIUTYPE,+$$CLASS^TIUSROI("SURGICAL REPORTS")) D REASSOP^TIUSROI(DFN,TIUDA) Q
 | 
|---|
| 15 |  ; --- If moving to another pt keep retracted original ---
 | 
|---|
| 16 |  I +$G(DFN)'=$P(TIUD0(0),U,2),(+$P(TIUD0(0),U,5)>5) D
 | 
|---|
| 17 |  . W !!,"Moving signed document to another Patient...A RETRACTED copy will be retained.",!
 | 
|---|
| 18 |  . S TIUODA=TIUDA,TIUDA=+$$RETRACT^TIURD2(TIUDA)
 | 
|---|
| 19 |  I TIUDA'>0 D  Q
 | 
|---|
| 20 |  . S TIUOUT=1
 | 
|---|
| 21 |  . W !!,"Creation of a new Copy of the RETRACTED record failed...Contact IRM.",!
 | 
|---|
| 22 |  . I $$READ^TIUU("EA","Press RETURN to continue...") ; pause
 | 
|---|
| 23 |  ; --- Get Document Parameters for TIUTYPE
 | 
|---|
| 24 |  D DOCPRM^TIULC1(TIUTYPE,.TIUDPRM)
 | 
|---|
| 25 |  ; --- Get associated visit ---
 | 
|---|
| 26 |  S TIULMETH=$$GETLMETH^TIUEDI1(TIUTYPE)
 | 
|---|
| 27 |  I '$L(TIULMETH) D  Q
 | 
|---|
| 28 |  . S TIUOUT=1
 | 
|---|
| 29 |  . W !!,$C(7),"No Visit Linkage Method defined for "
 | 
|---|
| 30 |  . W $$PNAME^TIULC1(TIUTYPE),".",!,"Please contact IRM...",!
 | 
|---|
| 31 |  . I $$READ^TIUU("EA","Press RETURN to continue...") ; pause
 | 
|---|
| 32 |  X TIULMETH
 | 
|---|
| 33 |  I '$D(TIU) D  Q
 | 
|---|
| 34 |  . S TIUOUT=1
 | 
|---|
| 35 |  . W !!,$C(7),"Patient & Visit required: Aborting Transaction...No Harm Done.",!
 | 
|---|
| 36 |  . I $$READ^TIUU("EA","Press RETURN to continue...") ; pause
 | 
|---|
| 37 |  ; --- Validate Selection ---
 | 
|---|
| 38 |  S TIUVMETH=$$GETVMETH^TIUEDI1(TIUTYPE)
 | 
|---|
| 39 |  I '$L(TIUVMETH) D  Q
 | 
|---|
| 40 |  . S TIUOUT=1
 | 
|---|
| 41 |  . W !!,$C(7),"No Validation Method defined for "
 | 
|---|
| 42 |  . W $$PNAME^TIULC1(TIUTYPE),".",!,"Please contact IRM...",!
 | 
|---|
| 43 |  . I $$READ^TIUU("EA","Press RETURN to continue...") ; pause
 | 
|---|
| 44 |  X TIUVMETH
 | 
|---|
| 45 |  I +$G(TIUASK)'>0 D  Q
 | 
|---|
| 46 |  . S TIUOUT=1
 | 
|---|
| 47 |  . W !!,$C(7),"Okay, No Harm Done.",!
 | 
|---|
| 48 |  . I $$READ^TIUU("EA","Press RETURN to continue...") W ""
 | 
|---|
| 49 |  ; --- If same Pt & Visit, abort transaction ---
 | 
|---|
| 50 |  I +$G(TIU("VISIT"))=$P(TIUD0(0),U,3) D  Q:+$G(TIUOUT)
 | 
|---|
| 51 |  . I +$G(TIUADD0),+$P($G(TIUDPRM(0)),U,10) Q
 | 
|---|
| 52 |  . S TIUOUT=1
 | 
|---|
| 53 |  . W !!,$C(7),$C(7),$C(7),"This ",$$PNAME^TIULC1(TIUTYPE)," is already associated with the selected visit...",!
 | 
|---|
| 54 |  . W !,"No action taken.",!
 | 
|---|
| 55 |  . I $$READ^TIUU("EA","Press RETURN to continue...") ; pause
 | 
|---|
| 56 |  ; --- If valid Pt and Visit, Reassign the document ---
 | 
|---|
| 57 |  I $L($G(TIU("VSTR"))) D
 | 
|---|
| 58 |  . N DA,DR,DIE,TIUORIG,TIUOLD0
 | 
|---|
| 59 |  . S TIUORIG=+$O(^TIU(8925,"APTLD",DFN,TIUTYPE,$G(TIU("VSTR")),0))
 | 
|---|
| 60 |  . S TIUOLD0=$G(^TIU(8925,+TIUORIG,0))
 | 
|---|
| 61 |  . ; If record exists and >1 documents/visit NOT allowed, offer
 | 
|---|
| 62 |  . ; chance to attach record as addendum
 | 
|---|
| 63 |  . I +TIUORIG,(+$P(TIUDPRM(0),U,10)'>0),(+$P(TIUOLD0,U,5)'>13) D  Q
 | 
|---|
| 64 |  . . N TIUATT
 | 
|---|
| 65 |  . . I TIUORIG=TIUDA D  Q
 | 
|---|
| 66 |  . . . W !,$C(7),$C(7),$C(7),"This ",$$PNAME^TIULC1(TIUTYPE)," is already associated with the selected visit...",!
 | 
|---|
| 67 |  . . . W !,"No action taken.",!
 | 
|---|
| 68 |  . . . I $$READ^TIUU("EA","Press RETURN to continue...") ; pause
 | 
|---|
| 69 |  . . W !!,$C(7),$C(7),$C(7),"This patient already has a "
 | 
|---|
| 70 |  . . W $$UP^XLFSTR($$PNAME^TIULC1(TIUTYPE))," for the selected care"
 | 
|---|
| 71 |  . . W !,"episode. Do you wish to make the current record an ADDENDUM of that ",!,$$UP^XLFSTR($$PNAME^TIULC1(TIUTYPE)),"?",!
 | 
|---|
| 72 |  . . S TIUATT=$$READ^TIUU("YOA","   ...OK? ","YES")
 | 
|---|
| 73 |  . . I +TIUATT'>0 D  Q
 | 
|---|
| 74 |  . . . W !!,"All right. No harm done.",!
 | 
|---|
| 75 |  . . . S TIUOUT=1
 | 
|---|
| 76 |  . . . I $$READ^TIUU("EA","Press RETURN to continue...") ; pause
 | 
|---|
| 77 |  . . D DELIRT^TIUDIRT($S(+$G(TIUODA):+TIUODA,1:+TIUDA))
 | 
|---|
| 78 |  . . D ATTACH^TIURD2(+TIUORIG,TIUDA),SEND^TIUALRT(TIUDA) S TIUCHNG=1
 | 
|---|
| 79 |  . ; --- Roll back old IRT data ---
 | 
|---|
| 80 |  . D DELIRT^TIUDIRT($S(+$G(TIUODA):+TIUODA,1:+TIUDA))
 | 
|---|
| 81 |  . ; --- Set up the ^DIE Call ---
 | 
|---|
| 82 |  . S DR=$G(DR)_".02////"_DFN_";.03////"_$S(+$P($G(TIU("VISIT")),U):$P($G(TIU("VISIT")),U),1:"@")_";.07////"_$P($G(TIU("EDT")),U)_";.08////"_$S(+$G(TIU("LDT")):$P($G(TIU("LDT")),U),1:"@")_";.13////"_$P($G(TIU("VSTR")),";",3)
 | 
|---|
| 83 |  . S DR=DR_";1205////"_$P($G(TIU("LOC")),U)_";1401////"_$S($L($G(TIU("AD#"))):+$G(TIU("AD#")),1:"@")_";1402////"_$P($G(TIU("TS")),U)_";1211////"_$P($G(TIU("VLOC")),U)_";1212////"_$P($G(TIU("INST")),U)
 | 
|---|
| 84 |  . S:+$$ISDS^TIULX(TIUTYPE) DR=DR_";1301////^S X="_$$REFDTO^TIURD2(TIUDA,.TIU)
 | 
|---|
| 85 |  . ; --- Don't ask author or cosigner for documents that have been signed ---
 | 
|---|
| 86 |  . S:+$P($G(^TIU(8925,+TIUDA,0)),U,5)'>5 DR=DR_";1202;1204////^S X=$P(^TIU(8925,DA,12),U,2);I '+$P($G(^TIU(8925,+TIUDA,12)),U,8) S Y=0;1208"
 | 
|---|
| 87 |  . ; --- Call ^DIE to affect the Reassignment ---
 | 
|---|
| 88 |  . S DA=TIUDA,DIE=8925 D ^DIE
 | 
|---|
| 89 |  . ; --- Post-reassignment Steps ---
 | 
|---|
| 90 |  . ; 1. Package Reassign Action:
 | 
|---|
| 91 |  . D PKGACT(TIUDA,.TIUD0,.TIUD12,.TIUD13,.TIUD14,.TIUOUT)
 | 
|---|
| 92 |  . Q:+$G(TIUOUT)
 | 
|---|
| 93 |  . W !!,$G(TIUNAME)," Reassigned.",!
 | 
|---|
| 94 |  . ; 2. Attach document to new Visit
 | 
|---|
| 95 |  . D QUE^TIUPXAP1
 | 
|---|
| 96 |  . ; 3. Update Addenda to Document
 | 
|---|
| 97 |  . D UPDTADD^TIURD2(TIUDA)
 | 
|---|
| 98 |  . ; 4. Update IRT Record
 | 
|---|
| 99 |  . D UPDTIRT^TIUDIRT(.TIU,+TIUDA)
 | 
|---|
| 100 |  . ; 5. Send Signature Alerts
 | 
|---|
| 101 |  . D SEND^TIUALRT(TIUDA)
 | 
|---|
| 102 |  . ; 6. Audit Reassignment
 | 
|---|
| 103 |  . S TIUD0(1)=$G(^TIU(8925,+TIUDA,0)),TIUD12(1)=$G(^(12))
 | 
|---|
| 104 |  . D AUDREASS^TIURB1(TIUDA,.TIUD0,.TIUD12)
 | 
|---|
| 105 |  . ; 7. If document was retracted, register audit trail for it
 | 
|---|
| 106 |  . I +$G(TIUODA) D AUDREASS^TIURB1(TIUODA,.TIUD0,.TIUD12)
 | 
|---|
| 107 |  . I +$P($G(TIUD0(0)),U,3) D WKLD(.TIUD0,.TIUD12)
 | 
|---|
| 108 |  . ;Finally, collect workload for target visit as appropriate
 | 
|---|
| 109 |  . I (+$P(^TIU(8925,+TIUDA,0),U,5)>6),+$P(^TIU(8925,+TIUDA,0),U,11) D
 | 
|---|
| 110 |  . . I $P(+$G(TIU("EDT")),".")'>DT D  Q:'+TIUASK
 | 
|---|
| 111 |  . . . W !!,"You may now edit the encounter data for the DESTINATION Visit...",!
 | 
|---|
| 112 |  . . . W !,"Patient: ",$G(TIU("PNM")),!,"  Visit: ",$P($G(TIU("EDT")),U,2)," to ",$P($G(TIU("VLOC")),U,2)
 | 
|---|
| 113 |  . . . W ! S TIUASK=+$$READ^TIUU("Y","Do you wish to do this now","NO")
 | 
|---|
| 114 |  . . ;If no workload process using TIU's interview
 | 
|---|
| 115 |  . . ;else, process using PCE's interview
 | 
|---|
| 116 |  . . I '$$CHKVST^TIUPXAP2(+TIUDA) D  I 1
 | 
|---|
| 117 |  . . . N TIUCONT,TIUPRMT
 | 
|---|
| 118 |  . . . Q:$D(XWBOS)
 | 
|---|
| 119 |  . . . I $P(+$P(^TIU(8925,+TIUDA,0),U,7),".")>DT D  Q
 | 
|---|
| 120 |  . . . . W !!
 | 
|---|
| 121 |  . . . . D QUE^TIUPXAP1
 | 
|---|
| 122 |  . . . . I $$READ^TIUU("EA","Press RETURN to continue...") ; pause
 | 
|---|
| 123 |  . . . ;W !!
 | 
|---|
| 124 |  . . . ;need workload? if yes enter
 | 
|---|
| 125 |  . . . I $$CHKWKL^TIUPXAP2(+TIUDA,.TIUDPRM) D CREDIT^TIUVSIT(TIUDA)
 | 
|---|
| 126 |  . . E  D
 | 
|---|
| 127 |  . . . ;need workload? if yes enter
 | 
|---|
| 128 |  . . . I $$CHKWKL^TIUPXAP2(+TIUDA,.TIUDPRM) D EDTENC^TIUPXAP2(TIUDA)
 | 
|---|
| 129 |  . S TIUCHNG=1 S:+$G(TIUODA) TIUCHNG=TIUCHNG_U_TIUDA
 | 
|---|
| 130 |  . W ! I $$READ^TIUU("EA","Press RETURN to continue...") ; pause
 | 
|---|
| 131 |  Q
 | 
|---|
| 132 |  ;
 | 
|---|
| 133 | WKLD(TIUD0,TIUD12) ; Allow user to clean up workload for visit from which document was removed
 | 
|---|
| 134 |  N TIUVSIT,TIUWHAT,TIUERR,TIUDFN,TIUEDT,TIUHL
 | 
|---|
| 135 |  I $S($P(TIUD0(0),U,13)="H":1,$P(TIUD0(0),U,13)="E":1,1:0) Q
 | 
|---|
| 136 |  S TIUHL=$P(TIUD12(0),U,11)
 | 
|---|
| 137 |  I $P($G(^SC(+TIUHL,0)),U,3)'="C" Q
 | 
|---|
| 138 |  S TIUDFN=$P(TIUD0(0),U,2),TIUEDT=$P(TIUD0(0),U,7),TIUVSIT=$P(TIUD0(0),U,3)
 | 
|---|
| 139 |  W !,"You may now clean up the encounter data for the ORIGINAL Visit...",!
 | 
|---|
| 140 |  W !,"Patient: ",$$PTNAME^TIULC1(TIUDFN),!,"  Visit: ",$$DATE^TIULS(TIUEDT,"AMTH DD, CCYY@HR:MIN")," to ",$$VLOC^TIURD2(TIUHL)
 | 
|---|
| 141 |  W ! I '+$$READ^TIUU("Y","Do you wish to do this now","NO") Q
 | 
|---|
| 142 |  I $G(VALMAR)'="^TMP(""TIUR"",$J)" W !!,"Editing Encounter Data...",!
 | 
|---|
| 143 |  S TIUWHAT=$S($$CHKAPPT^TIUPXAP2(TIUVSIT,TIUDFN,TIUEDT,TIUHL):"INTV",1:"ADDEDIT")
 | 
|---|
| 144 |  S TIUERR=$$INTV^PXAPI(TIUWHAT,"TIU","TEXT INTEGRATION UTILITIES",.TIUVSIT,$S(+$G(TIUVSIT):"",1:TIUHL),TIUDFN,$S(+$G(TIUVSIT):"",1:TIUEDT))
 | 
|---|
| 145 |  ;
 | 
|---|
| 146 |  ;If an error is returned prompt to continue otherwise if a Visit
 | 
|---|
| 147 |  ;IEN is returned and one is not already defined update the document
 | 
|---|
| 148 |  ;I +TIUERR<0 D  I 1
 | 
|---|
| 149 |  ;. W ! I $$READ^TIUU("EA","Press RETURN to continue...") ; pause
 | 
|---|
| 150 |  ;E  I +$G(TIUVSIT),(+$G(TIUVSIT)'=$P($G(^TIU(8925,+TIUDA,0)),U,3)) D
 | 
|---|
| 151 |  ;.  
 | 
|---|
| 152 |  Q
 | 
|---|
| 153 | PKGACT(TIUDA,TIUD0,TIUD12,TIUD13,TIUD14,TIUOUT) ; Get/Execute Package Reassign Action
 | 
|---|
| 154 |  N TIUREASX,TIUPOP
 | 
|---|
| 155 |  S TIUREASX=$$REASSIGN^TIULC1(+$G(^TIU(8925,+TIUDA,0)))
 | 
|---|
| 156 |  I TIUREASX]"" D  Q:+$G(TIUPOP)
 | 
|---|
| 157 |  . X TIUREASX
 | 
|---|
| 158 |  . I +$G(TIUPOP) D  Q
 | 
|---|
| 159 |  . . S TIUOUT=1
 | 
|---|
| 160 |  . . D WHOABACK(TIUDA,TIUD0(0),TIUD12(0),TIUD13(0),TIUD14(0))
 | 
|---|
| 161 |  . . W !!,$C(7),"Can't Reassign this document...",!
 | 
|---|
| 162 |  . . I $$READ^TIUU("EA","Press RETURN to continue...") ; pause
 | 
|---|
| 163 |  . ; --- If original was retracted, call package Delete Action to roll-back ---
 | 
|---|
| 164 |  . I +$G(TIUODA) D
 | 
|---|
| 165 |  . . N TIUDA,TIUDELX
 | 
|---|
| 166 |  . . S TIUDA=TIUODA
 | 
|---|
| 167 |  . . S TIUDELX=$$DELETE^TIULC1(+$G(^TIU(8925,+TIUDA,0)))
 | 
|---|
| 168 |  . . I TIUDELX]"" X TIUDELX
 | 
|---|
| 169 |  Q
 | 
|---|
| 170 |  ;
 | 
|---|
| 171 | WHOABACK(DA,TIUD0,TIUD12,TIUD13,TIUD14) ; Undo Reassign when fails
 | 
|---|
| 172 |  N DIE,DR S DIE=8925
 | 
|---|
| 173 |  S DR=".02////"_$P(TIUD0,U,2)_";.03////"_$P(TIUD0,U,3)_";.07////"_$P(TIUD0,U,7)_";.08////"_$P(TIUD0,U,8)_";.13////"_$P(TIUD0,U,13)
 | 
|---|
| 174 |  S DR=DR_";1205////"_$P(TIUD12,U,5)_";1401////"_$P(TIUD14,U)_";1402////"_$P(TIUD14,U,2)_";1211////"_$P(TIUD12,U,11)_";1212////"_$P(TIUD12,U,12)
 | 
|---|
| 175 |  D ^DIE
 | 
|---|
| 176 |  I +$P($G(^TIU(8925,+DA,0)),U,5)'>5 D
 | 
|---|
| 177 |  . S DR="1202////"_$P(TIUD12,U,2)_";1305////"_$P(TIUD13,U,5)_";1306////"_$P(TIUD13,U,6)_";1208////"_$P(TIUD12,U,8)_";1209////"_$P(TIUD12,U,9)
 | 
|---|
| 178 |  . S DIE=8925 D ^DIE
 | 
|---|
| 179 |  Q
 | 
|---|