[623] | 1 | WVRALINK ;HCIOFO/FT-RAD/NM-WOMEN'S HEALTH LINK ;6/10/04 14:51
|
---|
| 2 | ;;1.0;WOMEN'S HEALTH;**3,5,7,9,10,16,18**;Sep 30, 1998
|
---|
| 3 | ;
|
---|
| 4 | ; This routine uses the following IAs:
|
---|
| 5 | ; #2480 - FILE 70 (private)
|
---|
| 6 | ; #2481 - FILE 71 (private)
|
---|
| 7 | ; #2482 - FILE 71.2 (private)
|
---|
| 8 | ; #10035 - FILE 2 (supported)
|
---|
| 9 | ; #10063 - ^%ZTLOAD (supported)
|
---|
| 10 | ; #10070 - ^XMD (supported)
|
---|
| 11 | ; #10141 - ^XPDUTL (supported)
|
---|
| 12 | ;
|
---|
| 13 | ;; Original routine created by IHS/ANMC/MWR
|
---|
| 14 | ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
|
---|
| 15 | ;; CREATE MAMMOGRAM PROCEDURE IN WOMEN'S HEALTH FOR THIS PATIENT.
|
---|
| 16 | ;; CALLED BY ^RART WHEN A RADIOLOGY REPORT IS VERIFIED.
|
---|
| 17 | ;; CALLED BY ^RARTE1 WHEN A RADIOLOGY REPORT IS UNVERIFIED.
|
---|
| 18 | ;; CALLED BY ^WVEXPTRA WHEN EXPORTING HISTORICAL MAMS TO WOMEN'S HEALTH
|
---|
| 19 | ;
|
---|
| 20 | ;---> REQUIRED VARIABLES: DFN = DFN OF RADIOLOGY PATIENT.
|
---|
| 21 | ;---> DATE = INVERSE DATE/TIME OF VISIT.
|
---|
| 22 | ;---> CASE = IEN OF RADIOLOGY EXAM (CASE).
|
---|
| 23 | ;
|
---|
| 24 | ;---> OPTIONAL VARIABLE: WVNEWP = TOTAL NEW WH PATIENTS ADDED.
|
---|
| 25 | ;---> WVMCNT = TOTAL NEW MAMS PROCEDURES ADDED.
|
---|
| 26 | ;---> THESE IF CALLED FROM ^WVEXPTRA ROUTINE.
|
---|
| 27 | ;
|
---|
| 28 | ;---> GENERATED VARIBLES:
|
---|
| 29 | ;---> WVPROC = IEN OF RADIOLOGY PROCEDURE (FILE #71), THEN IT
|
---|
| 30 | ;---> GETS CHANGED TO WOMEN'S HEALTH PROCEDURE TYPE
|
---|
| 31 | ;---> (FILE #790.2).
|
---|
| 32 | ;---> WVLOC = WARD/CLINIC/LOCATION (FILE #44).
|
---|
| 33 | ;---> WVDATE = DATE OF THE PROCEDURE.
|
---|
| 34 | ;---> WVPROV = ORDERING PROVIDER.
|
---|
| 35 | ;---> WVMOD = LEFT OR RIGHT, IF IT'S A UNILATERAL MAMMOGRAM.
|
---|
| 36 | ;---> WVDX = RADIOLOGY DIAGNOSTIC CODE.
|
---|
| 37 | ;---> WVBWDX = WOMEN'S HEALTH RESULT/DIAGNOSIS.
|
---|
| 38 | ;
|
---|
| 39 | CREATE(DFN,DATE,CASE) ;
|
---|
| 40 | Q:'+$$VERSION^XPDUTL("WV")
|
---|
| 41 | Q:($G(DFN)']"")!($G(DATE)']"")!($G(CASE)']"")
|
---|
| 42 | N ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE
|
---|
| 43 | S:'$D(DUZ)#2 DUZ=.5
|
---|
| 44 | S:'$D(DUZ(2))#2 DUZ(2)=$$KSP^XUPARAM("INST")
|
---|
| 45 | S ZTRTN="CREATEQ^WVRALINK",ZTDESC="WV CREATE MAMMOGRAM ENTRY"
|
---|
| 46 | S ZTSAVE("DFN")="",ZTSAVE("DATE")="",ZTSAVE("CASE")=""
|
---|
| 47 | S ZTIO="",ZTDTH=$H
|
---|
| 48 | D ^%ZTLOAD
|
---|
| 49 | Q
|
---|
| 50 | CREATEH(DFN,DATE,CASE,STATUS) ; Entry from ^WVEXPTRA which looks for exams
|
---|
| 51 | ; created before the WH package was installed.
|
---|
| 52 | Q:($G(DFN)']"")!($G(DATE)']"")!($G(CASE)']"")!($G(STATUS)']"")
|
---|
| 53 | ;
|
---|
| 54 | CREATEQ ; Queue data entry creation. Called from CREATE above
|
---|
| 55 | N WVPROC,WVLOC,WVDATE,WVDR,WVPROV,WVMOD,WVDX,WVBWDX,WVLEFT,WVRIGHT
|
---|
| 56 | N WVCASE,WVCPT,WVERR,WVCREDIT,WVEXAM0,WVZSTAT
|
---|
| 57 | ;---> QUIT IF RADIOLOGY DATA IS NOT DEFINED OR ="".
|
---|
| 58 | I $D(ZTQUEUED) S ZTREQ="@"
|
---|
| 59 | Q:'$D(^RADPT(DFN,"DT",DATE,"P",CASE,0))
|
---|
| 60 | ;
|
---|
| 61 | ;---> QUIT IF THIS PROCEDURE DOES NOT HAVE A MAM CPT CODE.
|
---|
| 62 | ;---> QUIT IF THIS PROCEDURE DOES NOT HAVE AN ULTRASOUND CPT CODE.
|
---|
| 63 | ;---> WVEXAM0=ZERO NODE OF RADIOLOGY EXAM.
|
---|
| 64 | S WVEXAM0=^RADPT(DFN,"DT",DATE,"P",CASE,0)
|
---|
| 65 | S WVCPT=$$GET1^DIQ(71,$P(WVEXAM0,U,2),9,"I") Q:WVCPT=""
|
---|
| 66 | S WVPROC=$O(^WV(790.2,"AC",WVCPT,0)) ;cpt code x-ref to get 790.2 ien
|
---|
| 67 | Q:'WVPROC ;cpt code is not tracked in 790.2
|
---|
| 68 | Q:$P($G(^WV(790.2,+WVPROC,0)),U,5)'="R" ;cpt is not rad/nm procedure
|
---|
| 69 | Q:$P($G(^DPT(DFN,0)),U,2)'="F" ;not female
|
---|
| 70 | ;
|
---|
| 71 | ;---> QUIT IF NO WOMEN'S HEALTH SITE PARAMETER FILE ON THIS MACHINE.
|
---|
| 72 | ; OR NO DEFAULT CASE MANAGER
|
---|
| 73 | Q:'$D(^WV(790.02,DUZ(2)))
|
---|
| 74 | Q:'$P($G(^WV(790.02,+$G(DUZ(2)),0)),U,2)
|
---|
| 75 | ;
|
---|
| 76 | ;---> IF NOT CALLED FROM ^WVEXPTRA (i.e., STATUS is undefined) CHECK
|
---|
| 77 | ;---> SITE PARAMETER AND QUIT IF "IMPORT MAMMOGRAMS FROM RADIOLOGY"
|
---|
| 78 | ;---> IS NOT SET TO "YES". CHECK VETERAN STATUS AND ELIGIBILITY CODE.
|
---|
| 79 | N Y S Y=^WV(790.02,DUZ(2),0)
|
---|
| 80 | I '$D(STATUS) Q:'$P(Y,U,10)
|
---|
| 81 | I '$D(STATUS) Q:'$$VNVEC^WVRALIN1() ;vet/non-vet/eligibility code check
|
---|
| 82 | ;
|
---|
| 83 | ;---> SET WVZSTAT =THE STATUS (OPEN OR CLOSED) IN WOMEN'S HEALTH.
|
---|
| 84 | ;---> THAT MAMMOGRAMS SHOULD RECEIVE WHEN COPIED OVER FROM RADIOLOGY.
|
---|
| 85 | S WVZSTAT=$P(Y,U,23) S:WVZSTAT="" WVZSTAT="o"
|
---|
| 86 | I $G(STATUS)]"" S WVZSTAT=$G(STATUS) ;status selected in ^WVEXPTRA
|
---|
| 87 | ;
|
---|
| 88 | D COPY(WVEXAM0)
|
---|
| 89 | ;
|
---|
| 90 | EXIT ;EP
|
---|
| 91 | K I,N,X
|
---|
| 92 | Q
|
---|
| 93 | ;
|
---|
| 94 | COPY(Y) ;EP
|
---|
| 95 | ;---> COPY MAM PROCEDURE DATA FROM RADIOLOGY TO WOMEN'S HEALTH.
|
---|
| 96 | ;---> VARIABLE DFN=PATIENT
|
---|
| 97 | ;---> LOCATION=DUZ(2)
|
---|
| 98 | ;---> WARD/CLINIC/LOCATION
|
---|
| 99 | N X
|
---|
| 100 | S WVLOC=$P(Y,U,8)
|
---|
| 101 | ;
|
---|
| 102 | ;---> WVDATE=DATE OF THE PROCEDURE.
|
---|
| 103 | S WVDATE=$P($P(^RADPT(DFN,"DT",DATE,0),U),".")
|
---|
| 104 | ;
|
---|
| 105 | ;---> RECONSTRUCT THE FULL CASE# FOR THIS RAD PROCEDURE.
|
---|
| 106 | ;---> THIS IS USED AS A LINK (XREF) BETWEEN THE RADIOLOGY PROCEDURE
|
---|
| 107 | ;---> AND THE WOMEN'S HEALTH PROCEDURE.
|
---|
| 108 | S WVCASE=$E(WVDATE,4,7)_$E(WVDATE,2,3)_"-"_$P(Y,U)
|
---|
| 109 | ;---> CHECK TO BE SURE THE CASE# XREF IS REALLY DOWN THERE.
|
---|
| 110 | S:'$D(^RADPT("ADC",WVCASE,DFN,DATE,CASE)) WVCASE="UNKNOWN"
|
---|
| 111 | ;
|
---|
| 112 | ;---> QUIT IF THIS PROCEDURE HAS ALREADY BEEN SENT TO WOMEN'S HEALTH.
|
---|
| 113 | Q:$D(^WV(790.1,"E",WVCASE))
|
---|
| 114 | ;
|
---|
| 115 | ;---> REQUESTING PROVIDER/ORDERING PROVIDER
|
---|
| 116 | S WVPROV=$P(Y,U,14)
|
---|
| 117 | ;
|
---|
| 118 | ;---> IF UNILATERAL, ATTEMPT TO PICK UP LEFT OR RIGHT MODIFIER.
|
---|
| 119 | I WVPROC=26 D
|
---|
| 120 | .I $D(^RADPT(DFN,"DT",DATE,"P",CASE,"M",0)) D
|
---|
| 121 | ..N N S N=0
|
---|
| 122 | ..F S N=$O(^RADPT(DFN,"DT",DATE,"P",CASE,"M",N)) Q:'N D
|
---|
| 123 | ...S WVMOD=$P(^RADPT(DFN,"DT",DATE,"P",CASE,"M",N,0),U)
|
---|
| 124 | ...S WVMOD=$$GET1^DIQ(71.2,WVMOD,.01,"I")
|
---|
| 125 | ...I "LEFTleft"[WVMOD S WVLEFT=1
|
---|
| 126 | ...I "RIGHTright"[WVMOD S WVRIGHT=1
|
---|
| 127 | ..Q:$D(WVLEFT)&($D(WVRIGHT))
|
---|
| 128 | ..I $D(WVLEFT) S WVMOD="l" Q
|
---|
| 129 | ..I $D(WVRIGHT) S WVMOD="r" Q
|
---|
| 130 | ;
|
---|
| 131 | ;---> IF THERE'S A DIAGNOSTIC CODE, ATTEMPT TO PICK UP DIAGNOSIS.
|
---|
| 132 | ;---> USE "WV DIAGNOSTIC CODE TRANSLATION" FILE #790.32.
|
---|
| 133 | S WVDX=$P(Y,U,13)
|
---|
| 134 | I +WVDX I $D(^WV(790.32,"C",WVDX)) S WVBWDX=$O(^WV(790.32,"C",WVDX,0))
|
---|
| 135 | ;
|
---|
| 136 | ;---> GET CREDIT METHOD.
|
---|
| 137 | S WVCREDIT=$P(Y,U,26)
|
---|
| 138 | ;
|
---|
| 139 | PATIENT ;---> IF PATIENT ISN'T IN WOMEN'S HEALTH DATABASE, ADD HER.
|
---|
| 140 | S WVERR=1
|
---|
| 141 | I '$D(^WV(790,DFN,0)) D
|
---|
| 142 | .D AUTOADD^WVPATE(DFN,DUZ(2),.WVERR)
|
---|
| 143 | .I $D(WVNEWP) S:WVERR WVNEWP=WVNEWP+1
|
---|
| 144 | Q:WVERR<0
|
---|
| 145 | D FIND^WVRALIN1 ;check for 'unlinked' entry in File 790.1
|
---|
| 146 | Q:$D(^WV(790.1,"E",WVCASE)) ;quit if link was made in WVRALIN1
|
---|
| 147 | PROC ;---> CREATE MAMMOGRAM PROCEDURE IN WV PROCEDURE FILE #790.1.
|
---|
| 148 | S WVDR=".02////"_DFN_";.04////"_WVPROC
|
---|
| 149 | S WVDR=WVDR_";.05////"_$G(WVBWDX)_";.07////"_WVPROV
|
---|
| 150 | S WVDR=WVDR_";.09////"_$G(WVMOD)_";.1////"_DUZ(2)_";.11////"_WVLOC
|
---|
| 151 | S WVDR=WVDR_";.12////"_WVDATE_";.14////"_WVZSTAT_";.15////"_WVCASE
|
---|
| 152 | S WVDR=WVDR_";.18////.5;.19////"_DT_";.34////"_$G(DUZ(2))_";.35////"_WVCREDIT
|
---|
| 153 | ;
|
---|
| 154 | D NEW2^WVPROC(DFN,WVPROC,WVDATE,WVDR,"","",.WVERR)
|
---|
| 155 | I $D(WVMCNT) S:WVERR>-1 WVMCNT=WVMCNT+1
|
---|
| 156 | Q:WVERR<0 ;procedure not added
|
---|
| 157 | Q:$D(WVMCNT) ;mass import of Rad/NM exams
|
---|
| 158 | ;Q:$P($G(^WV(790.02,+DUZ(2),0)),U,23)="c" ;Status=closed
|
---|
| 159 | I (WVCPT=76856)!(WVCPT=76830)!(WVCPT=76645) D Q ;not breast related
|
---|
| 160 | .D MAIL^WVRADWP(DFN,+Y,WVPROC,WVPROV) ;iens for patient, accession, procedure, provider/requestor
|
---|
| 161 | .Q
|
---|
| 162 | D CPRS^WVSNOMED(69,DFN,"",WVPROV,"Mammogram results available.","")
|
---|
| 163 | Q
|
---|
| 164 | ;
|
---|
| 165 | DELETE(DFN,DATE,CASE) ;EP
|
---|
| 166 | ;---> MODIFY WOMEN'S HEALTH PROCEDURE TO REFLECT CHANGE.
|
---|
| 167 | ;---> CALLED FROM RARTE1 (DELETE A REPORT AND UNVERIFY A REPORT).
|
---|
| 168 | ;
|
---|
| 169 | Q:'+$$VERSION^XPDUTL("WV")
|
---|
| 170 | Q:'$D(DFN)!('$D(DATE))!('$D(CASE))
|
---|
| 171 | N ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE
|
---|
| 172 | S ZTRTN="DELETEQ^WVRALINK",ZTDESC="WV MAMMOGRAM RPT CHANGE"
|
---|
| 173 | S ZTSAVE("DFN")="",ZTSAVE("DATE")="",ZTSAVE("CASE")=""
|
---|
| 174 | S ZTIO="",ZTDTH=$H
|
---|
| 175 | D ^%ZTLOAD
|
---|
| 176 | Q
|
---|
| 177 | DELETEQ ; Modify WV entry when mammogram report is unverified or deleted
|
---|
| 178 | Q:'$D(^RADPT(DFN,"DT",DATE,"P",CASE,0))
|
---|
| 179 | N WVIEN,WVDATE,WVCASE,WVCMGR,WVLOOP,WVMSG,WVPROV
|
---|
| 180 | N XMDUZ,XMSUB,XMTEXT,XMY ;send mail message to case manager
|
---|
| 181 | I $D(ZTQUEUED) S ZTREQ="@"
|
---|
| 182 | ;
|
---|
| 183 | ;---> WVDATE=DATE OF PROCEDURE.
|
---|
| 184 | S WVDATE=$P($P(^RADPT(DFN,"DT",DATE,0),U),".")
|
---|
| 185 | S WVCASE=$P(^RADPT(DFN,"DT",DATE,"P",CASE,0),U)
|
---|
| 186 | ;
|
---|
| 187 | ;---> WVCASE=RECONSTRUCTED CASE# OF PROCEDURE.
|
---|
| 188 | S WVCASE=$E(WVDATE,4,7)_$E(WVDATE,2,3)_"-"_WVCASE
|
---|
| 189 | ;---> QUIT IF NO CASE# XREF IN WOMEN'S HEALTH PROCEDURE FILE.
|
---|
| 190 | Q:'$D(^WV(790.1,"E",WVCASE))
|
---|
| 191 | ;
|
---|
| 192 | S WVIEN=$O(^WV(790.1,"E",WVCASE,0))
|
---|
| 193 | Q:'$D(^WV(790.1,WVIEN,0))
|
---|
| 194 | D RADMOD^WVPROC(WVIEN) ;update wh status to "open"
|
---|
| 195 | S WVPROV=+$$GET1^DIQ(790.1,WVIEN,.07,"I") ;get provider/requestor
|
---|
| 196 | S WVCMGR=+$$GET1^DIQ(790,DFN,.1,"I") ;get case manager
|
---|
| 197 | S:WVCMGR XMY(WVCMGR)=""
|
---|
| 198 | ; if no case manager, then get default case manager(s)
|
---|
| 199 | I 'WVCMGR S WVLOOP=0 F S WVLOOP=$O(^WV(790.02,WVLOOP)) Q:'WVLOOP D
|
---|
| 200 | .S WVCMGR=$$GET1^DIQ(790.02,WVLOOP,.02,"I")
|
---|
| 201 | .S:WVCMGR XMY(WVCMGR)=""
|
---|
| 202 | .Q
|
---|
| 203 | Q:$O(XMY(0))'>0 ;no case manager(s)
|
---|
| 204 | S:WVPROV XMY(WVPROV)=""
|
---|
| 205 | S XMDUZ=.5 ;message sender
|
---|
| 206 | S XMSUB="RAD/NM Rpt for WH patient is UNVERIFIED/DELETED"
|
---|
| 207 | S WVMSG(1)=" Patient: "_$P($G(^DPT(DFN,0)),U,1)_" (SSN: "_$$SSN^WVUTL1(DFN)_")"
|
---|
| 208 | S WVMSG(2)=" WH Accession #: "_$P($G(^WV(790.1,+WVIEN,0)),U,1)
|
---|
| 209 | S WVMSG(3)=" RAD/NM Case #: "_WVCASE
|
---|
| 210 | S WVMSG(4)=" "
|
---|
| 211 | S WVMSG(5)="NOTE: THIS PROCEDURE HAS BEEN ALTERED IN RADIOLOGY/NM."
|
---|
| 212 | S WVMSG(6)="Follow-up is required in the WOMEN'S HEALTH package!"
|
---|
| 213 | S XMTEXT="WVMSG("
|
---|
| 214 | D ^XMD
|
---|
| 215 | Q
|
---|