Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: TIU214

TIU214.m

Go to the documentation of this file.
  1. TIU214 ; VMP/JML - ID NOTES with Mismatched Patients ;3/31/06 ; Compiled March 13, 2006 15:21:26
  1. ;;1.0;TEXT INTEGRATION UTILITIES;**214**;Jun 20, 1997
  1. ; Report/Fix ID Documents where the child note points to a parent note for a different patient.
  1. ; Report only Documents where the child note points to a parent that may not be an id note.
  1. Q
  1. EN ; Build array of mismatched ID documents
  1. N TIUPRNT,TIUCHILD,TIUPDFN,TIUCDFN,TIUPNAME,TIUCNAME,TIUP0,TIUC0,TIUCAUTH,TIUCTITL,TIUDATA,TIUBAD
  1. N TIUC12,TIUCEDT,TIUPAUTH,TIUPTITL,TIUP12,TIUPEDT,TIUFIX,Y,DFN,%ZIS,POP,DIR,DIRUT,TIULEN,TIUDUZ
  1. S DIR(0)="SO^1:REPORT;2:FIX"
  1. S DIR("L",1)="Report only or Report AND fix the bad pointers?"
  1. S DIR("L",2)=""
  1. S DIR("L",3)="1 - Report Only"
  1. S DIR("L")="2 - Report and Fix"
  1. S DIR("B")=1
  1. D ^DIR K DIR
  1. Q:$G(DIRUT)
  1. S TIUFIX=$S(Y=2:1,1:0),TIUDUZ=$G(DUZ)
  1. S %ZIS="Q" D ^%ZIS
  1. Q:$G(POP)>0
  1. I $G(IO("Q"))=1 D Q
  1. .N ZTRTN,ZTDESC,ZTSAVE
  1. .S ZTRTN="SEARCH^TIU214",ZTDESC="Mismatched ID Note Report",ZTSAVE("TIU*")=""
  1. .D ^%ZTLOAD K IO("Q")
  1. K ^TMP("TIU214",$J)
  1. S ^TMP("TIU214",$J)=0,^TMP("TIU214",$J,"MISMATCH")=0,^TMP("TIU214",$J,"MISSING")=0,^TMP("TIU214",$J,"NONPRNT")=0
  1. I $E(IOST,1,2)="C-" W @IOF,!!?5,"Searching for Parent/Child ID Notes with mismatched patients...",!!
  1. S TIUPRNT=0
  1. F S TIUPRNT=$O(^TIU(8925,"GDAD",TIUPRNT)) Q:TIUPRNT="" D
  1. . S ^TMP("TIU214",$J)=^TMP("TIU214",$J)+1
  1. . S TIUCHILD=0
  1. . F S TIUCHILD=+$O(^TIU(8925,"GDAD",TIUPRNT,TIUCHILD)) Q:'TIUCHILD D
  1. . . S TIUC0=$G(^TIU(8925,TIUCHILD,0)),TIUCDFN=$P(TIUC0,U,2)
  1. . . S TIUCNAME=$$PNAME(TIUCDFN)
  1. . . S TIUCAUTH=$$GET1^DIQ(8925,TIUCHILD_",",1202)
  1. . . S TIUCTITL=$$GET1^DIQ(8925,TIUCHILD_",",.01)
  1. . . S TIUC12=$G(^TIU(8925,TIUCHILD,12))
  1. . . S Y=$P(TIUC12,"^") D DD^%DT S TIUCEDT=Y
  1. . . S TIUP0=$G(^TIU(8925,TIUPRNT,0)),TIUPDFN=$P(TIUP0,U,2)
  1. . . I TIUP0="" D Q
  1. . . . S ^TMP("TIU214",$J,"MISSING")=^TMP("TIU214",$J,"MISSING")+1
  1. . . . S ^TMP("TIU214",$J,"MISSING",TIUPRNT,TIUCHILD)=TIUCNAME_"^"_TIUCTITL_"^"_TIUCEDT_"^"_TIUCAUTH
  1. . . I TIUPDFN'=TIUCDFN D Q
  1. . . . S TIUPNAME=$$PNAME(TIUPDFN)
  1. . . . S ^TMP("TIU214",$J,"MISMATCH")=^TMP("TIU214",$J,"MISMATCH")+1
  1. . . . I '$D(^TMP("TIU214",$J,"MISMATCH",TIUPRNT)) D
  1. . . . . S TIUPAUTH=$$GET1^DIQ(8925,TIUPRNT_",",1202)
  1. . . . . S TIUPTITL=$$GET1^DIQ(8925,TIUPRNT_",",.01)
  1. . . . . S TIUP12=$G(^TIU(8925,TIUPRNT,12))
  1. . . . . S Y=$P(TIUP12,"^") D DD^%DT S TIUPEDT=Y
  1. . . . . S ^TMP("TIU214",$J,"MISMATCH",TIUPRNT)=TIUPNAME_"^"_TIUPTITL_"^"_TIUPEDT_"^"_TIUPAUTH_"^"_TIUPRNT
  1. . . . S ^TMP("TIU214",$J,"MISMATCH",TIUPRNT,TIUCHILD)=TIUCNAME_"^"_TIUCTITL_"^"_TIUCEDT_"^"_TIUCAUTH_"^"_TIUCHILD
  1. . . S TIUBAD="" S TIUBAD=$$POSSPRNT^TIULP(+TIUP0) I '+TIUBAD D Q
  1. . . . S ^TMP("TIU214",$J,"NONPRNT")=^TMP("TIU214",$J,"NONPRNT")+1
  1. . . . S TIUPAUTH=$$GET1^DIQ(8925,TIUPRNT_",",1202)
  1. . . . S TIUPTITL=$$GET1^DIQ(8925,TIUPRNT_",",.01)
  1. . . . S TIUP12=$G(^TIU(8925,TIUPRNT,12))
  1. . . . S Y=$P(TIUP12,"^") D DD^%DT S TIUPEDT=Y
  1. . . . S ^TMP("TIU214",$J,"NONPRNT",TIUPRNT,TIUCHILD)=TIUCNAME_"^"_TIUPTITL_"^"_TIUPEDT_"^"_TIUPAUTH_"^"_TIUPRNT_"^"_TIUCTITL
  1. D REPORT
  1. D MAIL
  1. K ^TMP("TIU214",$J)
  1. D ^%ZISC
  1. Q
  1. REPORT ;
  1. U IO
  1. N TIUQUIT,TIUHIDE,TIUCINFO,TIUPINFO,TIUSHOW
  1. S TIUQUIT=0,TIUSHOW=$S(IOST["P-":0,1:1)
  1. S ^TMP("TIU214",$J,"FIX_MISMATCH_PTR")=0,^TMP("TIU214",$J,"FIX_MISMATCH_XREF")=0
  1. S ^TMP("TIU214",$J,"FIX_MISSING_PTR")=0,^TMP("TIU214",$J,"FIX_MISSING_XREF")=0
  1. I IOST["C-" D CLEAR^VALM1
  1. S TIUDATA=0,TIULEN=$S(IOST["C-":8,1:6)
  1. I TIUFIX S TIULEN=TIULEN+1
  1. D HDR1(0)
  1. S TIUPRNT=""
  1. F S TIUPRNT=$O(^TMP("TIU214",$J,"MISMATCH",TIUPRNT)) Q:TIUPRNT=""!(TIUQUIT) D
  1. .S TIUPINFO=$G(^TMP("TIU214",$J,"MISMATCH",TIUPRNT))
  1. .S TIUCHILD=""
  1. .F S TIUCHILD=$O(^TMP("TIU214",$J,"MISMATCH",TIUPRNT,TIUCHILD)) Q:TIUCHILD=""!(TIUQUIT) D
  1. ..S TIUCINFO=$G(^TMP("TIU214",$J,"MISMATCH",TIUPRNT,TIUCHILD))
  1. ..I $Y>(IOSL-TIULEN) D PAUSE Q:TIUQUIT D HDR1(1)
  1. ..I TIUSHOW D
  1. ...W !!," Patient: ",$E($P(TIUCINFO,"^",1),1,26)," (",$P(TIUCINFO,"^",2),")"
  1. ...W ?45,$E($P(TIUPINFO,"^",1),1,26)," (",$P(TIUPINFO,"^",2),")"
  1. ..I 'TIUSHOW D
  1. ...W !!," Patient: ",$P(TIUCINFO,"^",2)
  1. ...W ?45,$P(TIUPINFO,"^",2)
  1. ..W !," Title: ",$E($P(TIUCINFO,"^",3),1,33),?45,$E($P(TIUPINFO,"^",3),1,33)
  1. ..W !,"Entry DT: ",$E($P(TIUCINFO,"^",4),1,33),?45,$E($P(TIUPINFO,"^",4),1,33)
  1. ..W !," Author: ",$E($P(TIUCINFO,"^",5),1,33),?45,$E($P(TIUPINFO,"^",5),1,33)
  1. ..W !,"Note IEN: ",$E($P(TIUCINFO,"^",6),1,33),?45,$E($P(TIUPINFO,"^",6),1,33)
  1. ..I TIUFIX D
  1. ...I $G(^TIU(8925,TIUCHILD,21))=TIUPRNT D Q
  1. ....N DIE,DA,DR
  1. ....S DIE=8925,DA=TIUCHILD,DR="2101///@" D ^DIE
  1. ....W !?5,"..... Removed pointer from child to parent."
  1. ....S ^TMP("TIU214",$J,"FIX_MISMATCH_PTR")=^TMP("TIU214",$J,"FIX_MISMATCH_PTR")+1
  1. ...I $G(^TIU(8925,TIUCHILD,21))'=TIUPRNT D
  1. ....K ^TIU(8925,"GDAD",TIUPRNT,TIUCHILD)
  1. ....W !?5,"..... Child note did not point to parent. GDAD cross reference removed."
  1. ....S ^TMP("TIU214",$J,"FIX_MISMATCH_XREF")=^TMP("TIU214",$J,"FIX_MISMATCH_XREF")+1
  1. Q:TIUQUIT
  1. I TIUDATA D PAUSE Q:TIUQUIT
  1. S TIUDATA=0,TIULEN=$S(IOST["C-":9,1:7)
  1. I TIUFIX S TIULEN=TIULEN+1
  1. D HDR2(1)
  1. S TIUPRNT=""
  1. F S TIUPRNT=$O(^TMP("TIU214",$J,"MISSING",TIUPRNT)) Q:TIUPRNT=""!(TIUQUIT) D
  1. .S TIUCHILD=""
  1. .F S TIUCHILD=$O(^TMP("TIU214",$J,"MISSING",TIUPRNT,TIUCHILD)) Q:TIUCHILD=""!(TIUQUIT) D
  1. ..S TIUCINFO=^TMP("TIU214",$J,"MISSING",TIUPRNT,TIUCHILD)
  1. ..I $Y>(IOSL-TIULEN) D PAUSE Q:TIUQUIT D HDR2(1)
  1. ..W !!," Patient: " W:TIUSHOW $P(TIUCINFO,"^",1)," (" W $P(TIUCINFO,"^",2) W:TIUSHOW ")"
  1. ..W !," Title: ",$P(TIUCINFO,"^",3)
  1. ..W !," Entry DT: ",$P(TIUCINFO,"^",4)
  1. ..W !," Author: ",$P(TIUCINFO,"^",5)
  1. ..W !," Child IEN: ",TIUCHILD
  1. ..W !,"Parent IEN: ",TIUPRNT
  1. ..I TIUFIX D
  1. ...I $G(^TIU(8925,TIUCHILD,21))=TIUPRNT D Q
  1. ....N DIE,DA,DR
  1. ....S DIE=8925,DA=TIUCHILD,DR="2101///@" D ^DIE
  1. ....W !?5,"..... Removed pointer from child to parent."
  1. ....S ^TMP("TIU214",$J,"FIX_MISSING_PTR")=^TMP("TIU214",$J,"FIX_MISSING_PTR")+1
  1. ...I $G(^TIU(8925,TIUCHILD,21))'=TIUPRNT D
  1. ....K ^TIU(8925,"GDAD",TIUPRNT,TIUCHILD)
  1. ....W !?5,"..... Child note did not point to parent. GDAD cross reference removed."
  1. ....S ^TMP("TIU214",$J,"FIX_MISSING_XREF")=^TMP("TIU214",$J,"FIX_MISSING_XREF")+1
  1. Q:TIUQUIT
  1. I TIUDATA D PAUSE Q:TIUQUIT
  1. S TIUDATA=0,TIULEN=$S(IOST["C-":9,1:7)
  1. D HDR3(1)
  1. S TIUPRNT=""
  1. F S TIUPRNT=$O(^TMP("TIU214",$J,"NONPRNT",TIUPRNT)) Q:TIUPRNT=""!(TIUQUIT) D
  1. .S TIUCHILD=""
  1. .F S TIUCHILD=$O(^TMP("TIU214",$J,"NONPRNT",TIUPRNT,TIUCHILD)) Q:TIUCHILD=""!(TIUQUIT) D
  1. ..S TIUCINFO=^TMP("TIU214",$J,"NONPRNT",TIUPRNT,TIUCHILD)
  1. ..I $Y>(IOSL-TIULEN) D PAUSE Q:TIUQUIT D HDR3(1)
  1. ..W !!," Patient: " W:TIUSHOW $P(TIUCINFO,"^",1)," (" W $P(TIUCINFO,"^",2) W:TIUSHOW ")"
  1. ..W !," Parent Title: ",$P(TIUCINFO,"^",3),"-IEN: ",TIUPRNT
  1. ..W !,"Parent Entry DT: ",$P(TIUCINFO,"^",4)
  1. ..W !," Parent Author: ",$P(TIUCINFO,"^",5)
  1. ..W !," Child Title: ",$P(TIUCINFO,"^",7),"-IEN: ",TIUCHILD
  1. Q:TIUQUIT
  1. I TIUDATA D PAUSE Q:TIUQUIT
  1. W !,@IOF
  1. W !!?15,"TOTAL COUNTS FOR MISMATCHED ID NOTES"
  1. W !?15,"------------------------------------",!
  1. W !?15,+^TMP("TIU214",$J)_" CROSS REFERENCES CHECKED"
  1. W !?15,+^TMP("TIU214",$J,"MISMATCH")_" MISSMATCHED NOTE(S) FOUND"
  1. W !?15,+^TMP("TIU214",$J,"MISSING")_" NON EXISTENT PARENT NOTE(S)"
  1. W !?15,+^TMP("TIU214",$J,"NONPRNT")_" PARENT MAY NOT BE AN ID NOTE"
  1. I TIUFIX D
  1. .W !!?15,+^TMP("TIU214",$J,"FIX_MISMATCH_PTR")_" POINTER(S) FIXED FOR MISMATCHED NOTES"
  1. .W !?15,+^TMP("TIU214",$J,"FIX_MISMATCH_XREF")_" XREF(S) FIXED FOR MISMATCHED NOTES"
  1. .W !?15,+^TMP("TIU214",$J,"FIX_MISSING_PTR")_" POINTER(S) FIXED FOR MISSING NOTES"
  1. .W !?15,+^TMP("TIU214",$J,"FIX_MISSING_XREF")_" XREF(S) FIXED FOR MISSING NOTES"
  1. Q
  1. MAIL ; EMAIL TOTALS TO B.PSI-06-030 TO TRACK COMPLIANCE
  1. N XMDUZ,XMSUBJ,XMTO,TIUMAIL,%H,Y
  1. S XMDUZ="",XMSUBJ="MISMATCHED ID NOTES"
  1. S TIUMAIL(1,0)=$P($$SITE^VASITE(),"^",1,2)
  1. S %H=$H D YX^%DTC
  1. S TIUMAIL(2,0)=Y
  1. S TIUMAIL(3,0)=""
  1. S TIUMAIL(4,0)=+^TMP("TIU214",$J)_" CROSS REFERENCES CHECKED"
  1. S TIUMAIL(5,0)=+^TMP("TIU214",$J,"MISMATCH")_" MISS MATCHED NOTE(S) FOUND"
  1. S TIUMAIL(6,0)=+^TMP("TIU214",$J,"MISSING")_" NON EXISTENT PARENT NOTE(S)"
  1. I 'TIUFIX D
  1. .S TIUMAIL(7,0)=""
  1. .S TIUMAIL(8,0)="MODE - REPORT ONLY"
  1. I TIUFIX D
  1. .S TIUMAIL(7,0)=""
  1. .S TIUMAIL(8,0)="MODE - REPORT AND FIX"
  1. .S TIUMAIL(9,0)=+^TMP("TIU214",$J,"FIX_MISMATCH_PTR")_" POINTER(S) FIXED FOR MISMATCHED NOTES"
  1. .S TIUMAIL(10,0)=+^TMP("TIU214",$J,"FIX_MISMATCH_XREF")_" XREF(S) FIXED FOR MISMATCHED NOTES"
  1. .S TIUMAIL(11,0)=+^TMP("TIU214",$J,"FIX_MISSING_PTR")_" POINTER(S) FIXED FOR MISSING NOTES"
  1. .S TIUMAIL(12,0)=+^TMP("TIU214",$J,"FIX_MISSING_XREF")_" XREF(S) FIXED FOR MISSING NOTES"
  1. S XMTO("G.PSI-06-030@DOMAIN.EXT")=""
  1. D SENDMSG^XMXAPI(XMDUZ,XMSUBJ,"TIUMAIL",.XMTO)
  1. Q
  1. PNAME(PTDFN) ; Return Patient Name & last 4 of SSN
  1. N TIUSSN,TIUSSN4,TIUNAME,TIUPN,VADM
  1. I $G(PTDFN)="" Q "UNKNOWN^UNKNOWN"
  1. ;
  1. S DFN=PTDFN D DEM^VADPT
  1. S TIUSSN=$P(VADM(2),"^",2)
  1. S TIUSSN4=$P(TIUSSN,"-",3)
  1. S TIUPN=VADM(1)
  1. I TIUPN'="" S TIUPN=TIUPN_"^"_$E(TIUPN)_TIUSSN4
  1. I TIUPN="" S TIUPN="UNKNOWN^UNKNOWN"
  1. Q TIUPN
  1. HDR1(TIUFF) ;
  1. Q:^TMP("TIU214",$J,"MISMATCH")=0
  1. S TIUDATA=1
  1. I TIUFF W @IOF
  1. W ?18,"MISMATCHED INTERDISCIPLINARY NOTES"
  1. W !!?10,"CHILD DOCUMENT",?45,"PARENT DOCUMENT"
  1. W !?10,"---------------",?45,"--------------" Q
  1. HDR2(TIUFF) ;
  1. Q:^TMP("TIU214",$J,"MISSING")=0
  1. S TIUDATA=1
  1. I TIUFF W @IOF
  1. W !?11,"CHILD ID NOTES POINTING TO A NON-EXISTENT PARENT ID NOTE" Q
  1. HDR3(TIUFF) ;
  1. Q:^TMP("TIU214",$J,"NONPRNT")=0
  1. S TIUDATA=1
  1. I TIUFF W @IOF
  1. W !?11,"CHILD ID NOTES POINTING TO A PARENT THAT MAY NOT BE AN ID NOTE"
  1. W !!?11,"** NOTE: THIS IS AN INFORMATIONAL LIST FOR INVESTIGATION.",!?11," NOTHING WILL BE FIXED **" Q
  1. PAUSE ;
  1. I IOST["C-" D
  1. .N DIRUT,DIR
  1. .W ! S DIR(0)="E" D ^DIR K DIR
  1. .I $G(DIRUT)=1 S TIUQUIT=1
  1. Q