| 1 | TIU144 ; SLC/MAM -  Consults with Mismatched Patients ;3/6/03
 | 
|---|
| 2 |  ;;1.0;TEXT INTEGRATION UTILITIES;**144**;Jun 20, 1997
 | 
|---|
| 3 |  ; External References
 | 
|---|
| 4 |  ;   DBIA 3983  ^GMR(123
 | 
|---|
| 5 |  ;   DBIA 3472  $$CPPAT^GMRCCP
 | 
|---|
| 6 | BEGIN ; List mismatched Consults
 | 
|---|
| 7 |  W !!,"Searching for mismatched Consults could take some time.  Please"
 | 
|---|
| 8 |  W !,"remember to queue this option."
 | 
|---|
| 9 |  W ! K IOP S %ZIS="Q" D ^%ZIS I POP K POP Q
 | 
|---|
| 10 |  I $D(IO("Q")) K IO("Q") D  Q
 | 
|---|
| 11 |  .S ZTRTN="BUILD^TIU144",ZTSAVE("DUZ")=""
 | 
|---|
| 12 |  .S ZTDESC="TIU Mismatched Consults List - TIU*1*144"
 | 
|---|
| 13 |  .D ^%ZTLOAD W !,$S($D(ZTSK):"Request Queued!",1:"Request Canceled!")
 | 
|---|
| 14 |  .K ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE
 | 
|---|
| 15 |  .D HOME^%ZIS
 | 
|---|
| 16 |  U IO D BUILD,^%ZISC
 | 
|---|
| 17 |  Q
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 | BUILD ; Build array of mismatched Consults
 | 
|---|
| 20 |  N TIUCVPTR,TIUDA,TIUCNT,CNSLTCLS,NUMFOUND,NUMCHEKD
 | 
|---|
| 21 |  I $E(IOST)="C" W !!,"Searching for Consult documents with mismatched patients...",!
 | 
|---|
| 22 |  S CNSLTCLS=$$CLASS^TIUCNSLT()
 | 
|---|
| 23 |  S TIUCVPTR="",NUMCHEKD=0
 | 
|---|
| 24 |  F  S TIUCVPTR=$O(^TIU(8925,"G",TIUCVPTR)) Q:TIUCVPTR=""  D
 | 
|---|
| 25 |  . ; -- If Requesting Pkg IEN is 0 or -1, exclude document:
 | 
|---|
| 26 |  . Q:TIUCVPTR'>0
 | 
|---|
| 27 |  . ; -- If Req Pkg has file but it's not GMR(123, exclude document:
 | 
|---|
| 28 |  . I $P(TIUCVPTR,";",2)]"",$P(TIUCVPTR,";",2)'="GMR(123," Q
 | 
|---|
| 29 |  . S TIUDA=0
 | 
|---|
| 30 |  . F  S TIUDA=+$O(^TIU(8925,"G",TIUCVPTR,TIUDA)) Q:'TIUDA  D
 | 
|---|
| 31 |  . . N DFN,TIUCNNBR,OK,TIUD0,TIUD13,DOC,TIUDAD,TIUDAD0,TITLDA,CAPTURE
 | 
|---|
| 32 |  . . N PT,EDT,STATX,CNSLTPT,CNSLTEDT,TOSERV,CNSLTST,TIUMATCH,LOC,TIUD12
 | 
|---|
| 33 |  . . N DIC,DR,DA,DIQ,DIV,EXTRA,CNSLT1,CNSLT2
 | 
|---|
| 34 |  . . S TIUD0=$G(^TIU(8925,TIUDA,0)),DFN=+$P(TIUD0,U,2)
 | 
|---|
| 35 |  . . S TITLDA=+TIUD0,NUMCHEKD=NUMCHEKD+1
 | 
|---|
| 36 |  . . ; --If Req Pkg lacks file, & docmt is not a Consult, exclude docmt:
 | 
|---|
| 37 |  . . I $P(TIUCVPTR,";",2)="",'$$ISA^TIULX(TITLDA,CNSLTCLS) Q
 | 
|---|
| 38 |  . . S STATX=$P($G(^TIU(8925.6,+$P(TIUD0,U,5),0)),U)
 | 
|---|
| 39 |  . . Q:STATX="RETRACTED"
 | 
|---|
| 40 |  . . Q:STATX="DELETED"
 | 
|---|
| 41 |  . . S TIUCNNBR=+$P(TIUCVPTR,";")
 | 
|---|
| 42 |  . . S OK=$$CPPAT^GMRCCP(TIUCNNBR,DFN)
 | 
|---|
| 43 |  . . Q:OK>0
 | 
|---|
| 44 |  . . ; --If docmt is not a Consult, exclude docmt:
 | 
|---|
| 45 |  . . I TITLDA'=81,'$$ISA^TIULX(TITLDA,CNSLTCLS) Q
 | 
|---|
| 46 |  . . I TITLDA=81 S TIUDAD=+$P(TIUD0,U,6),TIUDAD0=$G(^TIU(8925,TIUDAD,0)) I '$$ISA^TIULX(+TIUDAD0,CNSLTCLS) Q
 | 
|---|
| 47 |  . . S TIUD13=$G(^TIU(8925,TIUDA,13))
 | 
|---|
| 48 |  . . S CAPTURE=$P(TIUD13,U,3)
 | 
|---|
| 49 |  . . S DOC=$E($$PNAME^TIULC1(+TIUD0),1,39)
 | 
|---|
| 50 |  . . S PT=$$PATIENT(DFN)
 | 
|---|
| 51 |  . . S EDT=$$DATE^TIULS($P(TIUD13,U),"MM/DD/YY")
 | 
|---|
| 52 |  . . S TIUD12=$G(^TIU(8925,TIUDA,12))
 | 
|---|
| 53 |  . . S LOC=+$P(TIUD12,U,5)
 | 
|---|
| 54 |  . . S DIV=+$P($G(^SC(LOC,0)),U,4)
 | 
|---|
| 55 |  . . S DIC="^GMR(123,",DR=".02;1;3;8"
 | 
|---|
| 56 |  . . S DA=TIUCNNBR,DIQ(0)="IE",DIQ="TIUMATCH"
 | 
|---|
| 57 |  . . D EN^DIQ1
 | 
|---|
| 58 |  . . S CNSLTPT=+$G(TIUMATCH(123,DA,.02,"I"))
 | 
|---|
| 59 |  . . S CNSLTEDT=$G(TIUMATCH(123,DA,3,"I")),CNSLTEDT=$$DATE^TIULS(CNSLTEDT,"MM/DD/YY")
 | 
|---|
| 60 |  . . S TOSERV=$E($G(TIUMATCH(123,DA,1,"E")),1,40)
 | 
|---|
| 61 |  . . S CNSLTPT=$$PATIENT(CNSLTPT)
 | 
|---|
| 62 |  . . S CNSLTST=$G(TIUMATCH(123,DA,8,"E"))
 | 
|---|
| 63 |  . . S CNSLTST=$S(CNSLTST="DISCONTINUED":"(dc)",1:"")
 | 
|---|
| 64 |  . . S TIUCNT=+$G(TIUCNT)+1
 | 
|---|
| 65 |  . . S ^TMP("TIU144",$J,DIV,TITLDA,TIUCNT,"DOCMT")=DOC_U_TIUDA_U_PT_U_EDT_U_CAPTURE_U_STATX
 | 
|---|
| 66 |  . . S ^TMP("TIU144",$J,DIV,TITLDA,TIUCNT,"CNSLT")=TOSERV_U_TIUCNNBR_U_CNSLTPT_U_CNSLTEDT_U_CNSLTST
 | 
|---|
| 67 |  . . ; -- Add lines about parent if docmt is addendum:
 | 
|---|
| 68 |  . . I TITLDA=81 D
 | 
|---|
| 69 |  . . . N DADDFN,TIUDAD13,DADDOC,DADPT,DADEDT,DADSTATX
 | 
|---|
| 70 |  . . . S DADDFN=$P(TIUDAD0,U,2) Q:'DADDFN
 | 
|---|
| 71 |  . . . S DADSTATX=$P($G(^TIU(8925.6,+$P(TIUDAD0,U,5),0)),U)
 | 
|---|
| 72 |  . . . S TIUDAD13=$G(^TIU(8925,TIUDAD,13))
 | 
|---|
| 73 |  . . . S DADDOC=$E($$PNAME^TIULC1(+TIUDAD0),1,40)
 | 
|---|
| 74 |  . . . S DADPT=$$PATIENT(DADDFN)
 | 
|---|
| 75 |  . . . S DADEDT=$$DATE^TIULS($P(TIUDAD13,U),"MM/DD/YY")
 | 
|---|
| 76 |  . . . S ^TMP("TIU144",$J,DIV,TITLDA,TIUCNT,"DADDOCMT")=DADDOC_U_TIUDAD_U_DADPT_U_DADEDT_U_DADSTATX
 | 
|---|
| 77 |  . . Q:TIUCNNBR'>0
 | 
|---|
| 78 |  . . S EXTRA=0
 | 
|---|
| 79 |  . . S CNSLT1=+$O(^GMR(123,"R",TIUDA_";TIU(8925,",0))
 | 
|---|
| 80 |  . . Q:CNSLT1'>0
 | 
|---|
| 81 |  . . I CNSLT1'=TIUCNNBR S EXTRA=CNSLT1
 | 
|---|
| 82 |  . . I 'EXTRA S CNSLT2=+$O(^GMR(123,"R",TIUDA_";TIU(8925,",CNSLT1))
 | 
|---|
| 83 |  . . I $G(CNSLT2)>0,CNSLT2'=TIUCNNBR S EXTRA=CNSLT2
 | 
|---|
| 84 |  . . I +EXTRA S ^TMP("TIU144",$J,DIV,TITLDA,TIUCNT,"EXTRA")=EXTRA
 | 
|---|
| 85 |  S NUMFOUND=+$G(TIUCNT)
 | 
|---|
| 86 |  D PRINT(NUMCHEKD,NUMFOUND)
 | 
|---|
| 87 |  K ^TMP("TIU144",$J)
 | 
|---|
| 88 |  Q
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 | PATIENT(PTDA) ; Return Patient Name & last 4 of SSN
 | 
|---|
| 91 |  ; Receives Patient file IEN
 | 
|---|
| 92 |  N PT,LASTI,LAST4
 | 
|---|
| 93 |  S PT=$$NAME^TIULS($$PTNAME^TIULC1(+PTDA),"LAST,FI MI")
 | 
|---|
| 94 |  S LASTI=$E(PT)
 | 
|---|
| 95 |  S LAST4=$E($P($G(^DPT(+PTDA,0)),U,9),6,9)
 | 
|---|
| 96 |  S LAST4="("_LASTI_LAST4_")"
 | 
|---|
| 97 |  S PT=PT_" "_LAST4
 | 
|---|
| 98 |  Q PT
 | 
|---|
| 99 | PRINT(CHEKD,FOUND) ; Print
 | 
|---|
| 100 |  N TIUCNT,TIUCONT,DOCDATA,DADDATA,CNDATA,TITLDA,DIV,EXTDIV,MISMNUM
 | 
|---|
| 101 |  I $D(ZTQUEUED) S ZTREQ="@" ; Tell TaskMan to delete Task log entry
 | 
|---|
| 102 |  I $E(IOST)="C" W @IOF,!
 | 
|---|
| 103 |  W "             Consult Documents with Mismatched Patients"
 | 
|---|
| 104 |  W !!,"        ",CHEKD," documents processed"
 | 
|---|
| 105 |  I 'FOUND W !,"        No mismatches found" G PRINTX
 | 
|---|
| 106 |  W !,"        ",FOUND," mismatched documents found"
 | 
|---|
| 107 |  W !!," In listed mismatches, the patient for the request associated with the"
 | 
|---|
| 108 |  W !,"document does not match the patient for the document. See the description for"
 | 
|---|
| 109 |  W !,"patch TIU*1*144 in the National Patch Module for further explanation of this"
 | 
|---|
| 110 |  W !,"display and for instructions on how to correct listed entries.",!!
 | 
|---|
| 111 |  ;W " In addition to patient mismatches, this list may contain some Consult Results",!,"which are not linked to any request.",!!
 | 
|---|
| 112 |  S DIV="",TIUCONT=1,MISMNUM=0
 | 
|---|
| 113 |  F  S DIV=$O(^TMP("TIU144",$J,DIV)) Q:DIV=""  D  Q:'TIUCONT
 | 
|---|
| 114 |  . I DIV'=$O(^TMP("TIU144",$J,"")) D  Q:'TIUCONT
 | 
|---|
| 115 |  . . I $E(IOST)="C" W !! S TIUCONT=$$STOP Q
 | 
|---|
| 116 |  . . W @IOF
 | 
|---|
| 117 |  . S EXTDIV=$$EXTERNAL^DILFD(44,3,"",DIV)
 | 
|---|
| 118 |  . I EXTDIV']"" S EXTDIV="UNKNOWN"
 | 
|---|
| 119 |  . W "===============================================================================",!
 | 
|---|
| 120 |  . W "        Division: ",EXTDIV
 | 
|---|
| 121 |  . W !,"==============================================================================="
 | 
|---|
| 122 |  . S TITLDA=""
 | 
|---|
| 123 |  . F  S TITLDA=$O(^TMP("TIU144",$J,DIV,TITLDA)) Q:TITLDA=""  D  Q:'TIUCONT
 | 
|---|
| 124 |  . . S TIUCNT=""
 | 
|---|
| 125 |  . . F  S TIUCNT=$O(^TMP("TIU144",$J,DIV,TITLDA,TIUCNT)) Q:TIUCNT=""  D  Q:'TIUCONT
 | 
|---|
| 126 |  . . . W !!
 | 
|---|
| 127 |  . . . S TIUCONT=$$SETCONT Q:'TIUCONT
 | 
|---|
| 128 |  . . . S DOCDATA=^TMP("TIU144",$J,DIV,TITLDA,TIUCNT,"DOCMT")
 | 
|---|
| 129 |  . . . S MISMNUM=MISMNUM+1
 | 
|---|
| 130 |  . . . W ?2,MISMNUM,".",?7,"Note Title: ",$P(DOCDATA,U),?59,"#: ",$P(DOCDATA,U,2),?72,"Capt: ",$P(DOCDATA,U,5)
 | 
|---|
| 131 |  . . . W !,?2,"Pt: ",$P(DOCDATA,U,3),?59,"Rf Date: ",$P(DOCDATA,U,4)
 | 
|---|
| 132 |  . . . S CNDATA=^TMP("TIU144",$J,DIV,TITLDA,TIUCNT,"CNSLT")
 | 
|---|
| 133 |  . . . W !,?2,"Cnslt To Serv: ",$P(CNDATA,U),?59,"Cnslt #: ",$P(CNDATA,U,2),?75,$P(CNDATA,U,5)
 | 
|---|
| 134 |  . . . W !,?2,"Pt: ",$P(CNDATA,U,3),?59,"Date: ",$P(CNDATA,U,4)
 | 
|---|
| 135 |  . . . S DADDATA=$G(^TMP("TIU144",$J,DIV,TITLDA,TIUCNT,"DADDOCMT"))
 | 
|---|
| 136 |  . . . I DADDATA]"" D
 | 
|---|
| 137 |  . . . . W !,?2,"Parent Title: ",$P(DADDATA,U),?59,"#: ",$P(DADDATA,U,2)
 | 
|---|
| 138 |  . . . . W !,?2,"Rf Date: ",$P(DADDATA,U,4)
 | 
|---|
| 139 |  . . . I $D(^TMP("TIU144",$J,DIV,TITLDA,TIUCNT,"EXTRA")) W !,?2,"Consult # ",^TMP("TIU144",$J,DIV,TITLDA,TIUCNT,"EXTRA")," is ALSO linked to this document on the Consults side."
 | 
|---|
| 140 | PRINTX I $G(TIUCONT) W !! S TIUCONT=$$SETCONT W ?5,"================ ",FOUND," Mismatches Found."," ================="
 | 
|---|
| 141 |  D MAIL(CHEKD,FOUND)
 | 
|---|
| 142 |  Q
 | 
|---|
| 143 | MAIL(CHEKD,FOUND) ; Send msg to person who ran option & Pt Safety Committee
 | 
|---|
| 144 |  N XMSUB,XMTEXT,XMDUZ,XMY,XMZ,XMMG,TIUTXT
 | 
|---|
| 145 |  S XMDUZ="PATCH TIU*1*144 MISMATCHED CONSULTS SEARCH OPTION"
 | 
|---|
| 146 |  S:$G(DUZ) XMY(DUZ)=""
 | 
|---|
| 147 |  S XMY("G.PATIENT SAFETY NOTIFICATIONS")="",XMY(.5)=""
 | 
|---|
| 148 |  S TIUTXT(1)="TIU Consult Documents Linked to Different Patient's Request"
 | 
|---|
| 149 |  S TIUTXT(2)=""
 | 
|---|
| 150 |  S TIUTXT(3)="Search completed successfully on "_$$FMTE^XLFDT($$NOW^XLFDT)
 | 
|---|
| 151 |  S TIUTXT(4)="Number of TIU documents processed: "_CHEKD
 | 
|---|
| 152 |  S TIUTXT(5)="Number of mismatched documents found: "_FOUND
 | 
|---|
| 153 |  S TIUTXT(6)=""
 | 
|---|
| 154 |  S TIUTXT(7)="These documents should be cleaned up manually, using TIU Document Management"
 | 
|---|
| 155 |  S TIUTXT(8)="options.  For more information, see patch TIU*1*144 in the National Patch"
 | 
|---|
| 156 |  S TIUTXT(9)="Module on FORUM, or contact "_$S($G(DUZ):$P(^VA(200,DUZ,0),"^"),1:"IRM")_"."
 | 
|---|
| 157 |  S XMTEXT="TIUTXT(",XMSUB="TIU*1*144 Mismatched TIU Consult Documents"
 | 
|---|
| 158 |  D ^XMD
 | 
|---|
| 159 |  Q
 | 
|---|
| 160 | STOP() ;on screen paging check
 | 
|---|
| 161 |  ; quits TIUCONT=1 if cont. ELSE quits TIUCONT=0
 | 
|---|
| 162 |  N DIR,Y,TIUCONT
 | 
|---|
| 163 |  S DIR(0)="E" D ^DIR
 | 
|---|
| 164 |  S TIUCONT=Y
 | 
|---|
| 165 |  I TIUCONT W @IOF,!
 | 
|---|
| 166 |  Q TIUCONT
 | 
|---|
| 167 |  ;
 | 
|---|
| 168 | SETCONT() ; D form feed, Set TIUCONT
 | 
|---|
| 169 |  N TIUCONT
 | 
|---|
| 170 |  S TIUCONT=1
 | 
|---|
| 171 |  I $E(IOST)="C" G SETX:$Y+8<IOSL
 | 
|---|
| 172 |  I $E(IOST)="C" S TIUCONT=$$STOP G SETX
 | 
|---|
| 173 |  G:$Y+7<IOSL SETX
 | 
|---|
| 174 |  W @IOF
 | 
|---|
| 175 | SETX Q TIUCONT
 | 
|---|