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

BRAWH.m

Go to the documentation of this file.
  1. BRAWH ; IHS/ITSC/PDW,CLS - RADIOLOGY WOMEN'S HEALTH LINK ; 20 Apr 2011 7:23 PM
  1. ;;5.0;Radiology/Nuclear Medicine;**1002,1003**;Nov 01, 2010;Build 3
  1. ;; RA*5.0*1002 IHS/OIT/CLS modified to accomodate 2007 mammogram CPT's
  1. ;;
  1. ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
  1. ;; CREATE MAMMOGRAM PROCEDURE IN WOMEN'S HEALTH FOR THIS PATIENT.
  1. ;; CALLED BY ^RART WHEN A RADIOLOGY REPORT IS VERIFIED.
  1. ;; CALLED BY ^RARTE1 WHEN A RADIOLOGY REPORT IS UNVERIFIED.
  1. ;; CALLED BY ^BRAEXPT WHEN EXPORTING HISTORICAL MAMS TO WOMEN'S HEALTH
  1. ;
  1. ;G LOOP
  1. ;---> REQUIRED VARIABLES: DFN = DFN OF RADIOLOGY PATIENT.
  1. ;---> DATE = INVERSE DATE/TIME OF VISIT.
  1. ;---> CASE = IEN OF RADIOLOGY EXAM (CASE).
  1. ;
  1. ;---> OPTIONAL VARIABLE: RANEWP = TOTAL NEW WH PATIENTS ADDED.
  1. ;---> RAMCNT = TOTAL NEW MAMS PROCEDURES ADDED.
  1. ;---> THESE IF CALLED FROM ^BRAEXPT ROUTINE.
  1. ;
  1. ;---> GENERATED VARIBLES:
  1. ;---> RAPROC = IEN OF RADIOLOGY PROCEDURE (FILE #71), THEN IT
  1. ;---> GETS CHANGED TO WOMEN'S HEALTH PROCEDURE TYPE
  1. ;---> (FILE #9002086.2).
  1. ;---> RALOC = WARD/CLINIC/LOCATION (FILE #44).
  1. ;---> RADATE = DATE OF THE PROCEDURE.
  1. ;---> RAPCCDT= PCC DATE/TIME IF IT EXISTS.
  1. ;---> RAPROV = ORDERING PROVIDER.
  1. ;---> RAMOD = LEFT OR RIGHT, IF IT'S A UNILATERAL MAMMOGRAM.
  1. ;---> RADX = RADIOLOGY DIAGNOSTIC CODE.
  1. ;---> RABWDX = WOMEN'S HEALTH RESULT/DIAGNOSIS.
  1. ;
  1. CREATE(DFN,DATE,CASE) ;EP
  1. N RAPROC,RALOC,RADATE,RAPCCDT,RAPROV,RAMOD,RADX,RABWDX,RALEFT,RARIGHT
  1. ;N RACASE,RACPT,RAERR,;,RAEXAM0 ;cmn'td out IHS/HQW/SCR 10/29/01 **11**
  1. N RACASE,RACPT,RAERR,BRAIRAD ;,RAEXAM0 ;IHS/HQW/SCR 10/29/01 **11**
  1. N D,DR,DIE,DIC ;IHS/ANMC/CLS 10/28/97
  1. ;
  1. ;---> QUIT IF RADIOLOGY DATA IS NOT DEFINED OR ="".
  1. Q:($G(DFN)']"")!($G(DATE)']"")!($G(CASE)']"")
  1. I $P($G(^DPT(DFN,0)),U,2)'="F" Q
  1. I $$AGE^AUPNPAT(DFN)<13 Q
  1. Q:'$D(^RADPT(DFN,"DT",DATE,"P",CASE,0))
  1. ;
  1. ;---> RAEXAM0=ZERO NODE OF RADIOLOGY EXAM.
  1. S RAEXAM0=^RADPT(DFN,"DT",DATE,"P",CASE,0)
  1. ;
  1. ;The next line identifies the Interpreting Physician for WH records
  1. S BRAIRAD=$P(RAEXAM0,U,15) ;IHS/HQW/SCR 10/29/01 **11**
  1. ;
  1. S RACPTI=$P(^RAMIS(71,$P(RAEXAM0,U,2),0),U,9)
  1. S RACPT=$$GET1^DIQ(81,RACPTI,.01)
  1. ;
  1. ;IHS/BJI/DAY - Patch 1003 - Add new G codes for Digital Mammos
  1. Q:(RACPT'=77055)&(RACPT'=77056)&(RACPT'=77057)&(RACPT'=77031)&(RACPT'=76645)&(RACPT'="G0202")&(RACPT'="G0204")&(RACPT'="G0206")
  1. ;End patch
  1. ;
  1. ;
  1. ;---> QUIT IF NO WOMEN'S HEALTH SITE PARAMETER FILE ON THIS MACHINE.
  1. Q:'$D(^BWSITE(DUZ(2)))
  1. ;
  1. ;---> QUIT IF "IMPORT MAMMOGRAMS FROM RADIOLOGY" IS NOT SET TO "YES"
  1. ;---> IN THE WOMEN'S HEALTH SITE PARAMETERS.
  1. N Y S Y=^BWSITE(DUZ(2),0)
  1. Q:'$P(Y,U,10)
  1. ;
  1. ;---> SET BRASTAT =THE STATUS (OPEN OR CLOSED) IN WOMEN'S HEALTH.
  1. ;---> THAT MAMMOGRAMS SHOULD RECEIVE WHEN COPIED OVER FROM RADIOLOGY.
  1. S BRASTAT=$P(Y,U,23) S:BRASTAT="" BRASTAT="o"
  1. ;
  1. ;---> BELOW ARE IENS FOR BW PROCEDURE TYPE FILE #9002086.2.
  1. ;---> IEN 26 IN ^BWPN( IS UNILATERAL MAMMOGRAM.
  1. ;---> IEN 25 IN ^BWPN( IS BILATERAL MAMMOGRAM.
  1. ;---> IEN 28 IN ^BWPN( IS SCREENING MAMMOGRAM.
  1. ;---> IEN 35 IN ^BWPN( IS STERIOTACTIC BIOPSY
  1. ;---> IEN 38 IN ^BWPN( IS BREAST ULTRASOUND
  1. ;
  1. I RACPT=76090 S RAPROC=26 D COPY(RAEXAM0) G EXIT
  1. I RACPT=76091 S RAPROC=25 D COPY(RAEXAM0) G EXIT
  1. I RACPT=76092 S RAPROC=28 D COPY(RAEXAM0) G EXIT
  1. I RACPT=76095 S RAPROC=35 D COPY(RAEXAM0) G EXIT ;IHS/ANMC/MWR
  1. I RACPT=76645 S RAPROC=38 D COPY(RAEXAM0) G EXIT ;IHS/ANMC/MWR
  1. ;
  1. ;----> ADDED 2007 CPT CODES
  1. I RACPT=77055 S RAPROC=26 D COPY(RAEXAM0) G EXIT ;IHS/OIT/CLS patch 1002
  1. I RACPT=77056 S RAPROC=25 D COPY(RAEXAM0) G EXIT ;IHS/OIT/CLS patch 1002
  1. I RACPT=77057 S RAPROC=28 D COPY(RAEXAM0) G EXIT ;IHS/OIT/CLS patch 1002
  1. I RACPT=77031 S RAPROC=35 D COPY(RAEXAM0) G EXIT ;IHS/ANMC/MWR ;IHS/OIT/CLS patch 1002
  1. I RACPT=76645 S RAPROC=38 D COPY(RAEXAM0) G EXIT ;IHS/ANMC/MWR
  1. ;
  1. ;IHS/BJI/DAY - Patch 1003 - Add new G codes for Digital Mammos
  1. I RACPT="G0202" S RAPROC=28 D COPY(RAEXAM0) G EXIT
  1. I RACPT="G0204" S RAPROC=25 D COPY(RAEXAM0) G EXIT
  1. I RACPT="G0206" S RAPROC=26 D COPY(RAEXAM0) G EXIT
  1. ;End patch
  1. ;
  1. EXIT ;EP
  1. K I,N,X
  1. Q
  1. ;
  1. ;
  1. COPY(Y) ;EP
  1. ;---> COPY MAM PROCEDURE DATA FROM RADIOLOGY TO WOMEN'S HEALTH.
  1. ;---> VARIABLE DFN=PATIENT
  1. ;---> LOCATION=DUZ(2)
  1. ;---> WARD/CLINIC/LOCATION
  1. N X
  1. S RALOC=$P(Y,U,8)
  1. ;
  1. ;---> RADATE=DATE OF THE PROCEDURE.
  1. S RADATE=$P($P(^RADPT(DFN,"DT",DATE,0),U),".")
  1. ;
  1. ;---> RECONSTRUCT THE FULL CASE# FOR THIS RAD PROCEDURE.
  1. ;---> THIS IS USED AS A LINK (XREF) BETWEEN THE RADIOLOGY PROCEDURE
  1. ;---> AND THE WOMEN'S HEALTH PROCEDURE.
  1. S RACASE=$E(RADATE,4,7)_$E(RADATE,2,3)_"-"_$P(Y,U)
  1. ;---> CHECK TO BE SURE THE CASE# XREF IS REALLY DOWN THERE.
  1. S:'$D(^RADPT("ADC",RACASE,DFN,DATE,CASE)) RACASE="UNKNOWN"
  1. ;
  1. ;---> QUIT IF THIS PROCEDURE HAS ALREADY BEEN SENT TO WOMEN'S HEALTH.
  1. I $D(^BWPCD("E",RACASE)) Q
  1. ;
  1. ;---> PCC DATE/TIME; IF NO TIME, ATTACH 12 NOON.
  1. I $D(^RADPT(DFN,"DT",DATE,"P",CASE,"PCC")) D
  1. .S RAPCCDT=$P(^RADPT(DFN,"DT",DATE,"P",CASE,"PCC"),U)
  1. .S:'$P(RAPCCDT,".",2) RAPCCDT=RAPCCDT_".12"
  1. ;
  1. ;
  1. ;---> REQUESTING PROVIDER/ORDERING PROVIDER
  1. ;---> USE FILE 16 "A3" POINTER TO PASS PROVIDER FILE #200 IEN.
  1. ;---> CHANGE THIS WHEN RADIOLOGY CONVERSION TO FILE #200 IS DONE.
  1. ;S RAPROV=^DIC(16,$P(Y,U,14),"A3") ;IHS/ISD/EDE 02/16/97
  1. ; chg file 16 to 200 IHS/ISD/EDE 02/16/97
  1. S RAPROV=$P(Y,U,14) ;IHS/ISD/EDE 02/16/97
  1. ;
  1. ;---> IF UNILATERAL, ATTEMPT TO PICK UP LEFT OR RIGHT MODIFIER.
  1. I RAPROC=26 D
  1. .I $D(^RADPT(DFN,"DT",DATE,"P",CASE,"M",0)) D
  1. ..N N S N=0
  1. ..F S N=$O(^RADPT(DFN,"DT",DATE,"P",CASE,"M",N)) Q:'N D
  1. ...S RAMOD=$P(^RADPT(DFN,"DT",DATE,"P",CASE,"M",N,0),U)
  1. ...S RAMOD=$P(^RAMIS(71.2,RAMOD,0),U)
  1. ...I "LEFTleft"[RAMOD S RALEFT=1
  1. ...I "RIGHTright"[RAMOD S RARIGHT=1
  1. ..Q:$D(RALEFT)&($D(RARIGHT))
  1. ..I $D(RALEFT) S RAMOD="l" Q
  1. ..I $D(RARIGHT) S RAMOD="r" Q
  1. ;
  1. ;---> IF THERE'S A DIAGNOSTIC CODE, ATTEMPT TO PICK UP DIAGNOSIS.
  1. ;---> USE "BW DIAGNOSTIC CODE TRANSLATION" FILE #9002086.32.
  1. S RADX=$P(Y,U,13)
  1. I +RADX I $D(^BWRADX("C",RADX)) S RABWDX=$O(^BWRADX("C",RADX,0))
  1. ;
  1. W !!?20,"* Updating Women's Health Database. *",!
  1. ;
  1. PATIENT ;---> IF PATIENT ISN'T IN WOMEN'S HEALTH DATABASE, ADD HER.
  1. S RAERR=1
  1. I '$D(^BWP(DFN,0)) D
  1. .D AUTOADD^BWPATE(DFN,DUZ(2),.RAERR)
  1. .I $D(RANEWP) S:RAERR RANEWP=RANEWP+1
  1. Q:RAERR<0
  1. ;
  1. PROC ;---> CREATE MAMMOGRAM PROCEDURE IN BW PROCEDURE FILE #9002086.1.
  1. ;
  1. S RADR=".02////"_DFN_";.03////"_$G(RAPCCDT)_";.04////"_RAPROC
  1. S RADR=RADR_";.05////"_$G(RABWDX)_";.07////"_RAPROV
  1. S RADR=RADR_";.09////"_$G(RAMOD)_";.1////"_DUZ(2)_";.11////"_RALOC
  1. S RADR=RADR_";.12////"_RADATE_";.14////"_BRASTAT_";.15////"_RACASE
  1. ;
  1. ;S RADR=RADR_";.18////.5;.19////"_DT ;Cmnt'd out to add Interpreting Radiologist field IHS/HQW/SCR 10/29/01 **11**
  1. S RADR=RADR_";.18////.5;.19////"_DT_";.35////"_BRAIRAD ;IHS/HQW/SCR 10/29/01 **11**
  1. ;
  1. D NEW2^BWPROC(DFN,RAPROC,RADATE,RADR,"","",.RAERR)
  1. I $D(RAMCNT) S:RAERR>-1 RAMCNT=RAMCNT+1
  1. Q
  1. ;
  1. ;
  1. UPDATE(DFN,DATE,CASE) ;EP
  1. ;---> MODIFY WOMEN'S HEALTH PROCEDURE TO REFLECT CHANGE.
  1. ;---> CALLED FROM RARTE1 (DELETE A REPORT AND UNVERIFY A REPORT).
  1. ; maybe called by RAEDFN if the system is setup to send PCC date at EXAMINED
  1. ;
  1. ;
  1. ;Q:'$D(DFN)!('$D(DATE))!('$D(CASE))
  1. Q:'$G(DFN)!('$G(DATE))!('$G(CASE)) ;IHS/ITSC/CLS 12/31/2003
  1. Q:'$D(^RADPT(DFN,"DT",DATE,"P",CASE,0))
  1. I $P($G(^DPT(DFN,0)),U,2)'="F" Q
  1. I $$AGE^AUPNPAT(DFN)<13 Q
  1. ;
  1. W !!,?20,"* Updating Women's Health Database *",!
  1. ;
  1. N RAIEN,RADATE,RACASE,RAMSG
  1. ;
  1. ;---> RADATE=DATE OF PROCEDURE.
  1. S RADATE=$P($P(^RADPT(DFN,"DT",DATE,0),U),".")
  1. S RACASE=$P(^RADPT(DFN,"DT",DATE,"P",CASE,0),U)
  1. ;
  1. ;---> RACASE=RECONSTRUCTED CASE# OF PROCEDURE.
  1. S RACASE=$E(RADATE,4,7)_$E(RADATE,2,3)_"-"_RACASE
  1. ;---> QUIT IF NO CASE# XREF IN WOMEN'S HEALTH PROCEDURE FILE.
  1. Q:'$D(^BWPCD("E",RACASE))
  1. ;
  1. S RAIEN=$O(^BWPCD("E",RACASE,0))
  1. Q:'$D(^BWPCD(RAIEN,0))
  1. S RAMSG="* NOTE: THIS PROCEDURE HAS BEEN ALTERED IN RADIOLOGY. "
  1. S RAMSG=RAMSG_"FOLLOW-UP REQUIRED!! RADIOLOGY CASE# IS "_RACASE_"."
  1. ;---> IF THERE'S AN EXISTING CLINICAL HX, PRESERVE AND CONCATENATE IT
  1. ;---> TO THE END OF THE MESSAGE PASSED HERE.
  1. I $G(^BWPCD(RAIEN,3))]"" D
  1. .S RAMSG=RAMSG_" PREVIOUS CLINICAL HX: "
  1. .S RAMSG=RAMSG_^BWPCD(RAIEN,3),RAMSG=$E(RAMSG,1,240)
  1. D RADMOD^BWPROC(RAIEN,RAMSG)
  1. Q
  1. ;
  1. ;
  1. UPDTDX(DFN,DATE,CASE) ;EP - Called from BRAPRAD when report is filed
  1. ;
  1. N RAZERO,RACASE,RADATE,RAACC,RADA
  1. N RADX,RAIRAD,RABWDX,DA,DR
  1. I '$G(DFN) Q
  1. I '$G(DATE) Q
  1. I '$G(CASE) Q
  1. I '$D(^RADPT(DFN,"DT",DATE,"P",CASE,0)) Q
  1. I $P($G(^DPT(DFN,0)),U,2)'="F" Q
  1. I $$AGE^AUPNPAT(DFN)<13 Q
  1. ;
  1. ;Check WH Site Parameter to see if we pass data
  1. I $$GET1^DIQ(9002086.02,DUZ(2),.1,"I")'=1 Q
  1. ;
  1. ;Build Accession Number
  1. S RAZERO=$G(^RADPT(DFN,"DT",DATE,"P",CASE,0))
  1. I RAZERO="" Q
  1. S RACASE=$P(RAZERO,U)
  1. S RADATE=$P($P(^RADPT(DFN,"DT",DATE,0),U),".")
  1. S RAACC=$E(RADATE,4,7)_$E(RADATE,2,3)_"-"_RACASE
  1. ;
  1. ;If BW Procedure does not exist then Create it and quit
  1. S RADA=$O(^BWPCD("E",RAACC,0))
  1. I RADA="" D CREATE^BRAWH(DFN,DATE,CASE) Q
  1. ;
  1. ;Get DX
  1. S RADX=$P(RAZERO,U,13)
  1. I +RADX D
  1. .S RABWDX=$O(^BWRADX("C",RADX,0))
  1. .I RABWDX="" Q
  1. .;
  1. .;File in Women's Health BW PROCEDURE file
  1. .S DA=RADA
  1. .S DR=".05////"_RABWDX
  1. .D DIE^BWFMAN(9002086.1,DR,DA)
  1. ;
  1. ;Get Interpreting Radiologist
  1. S RAIRAD=$P(RAZERO,U,15)
  1. I +RAIRAD D
  1. .;
  1. .;File in Women's Health BW PROCEDURE file
  1. .S DA=RADA
  1. .S DR=".35////"_RAIRAD
  1. .D DIE^BWFMAN(9002086.1,DR,DA)
  1. ;
  1. Q
  1. ;
  1. LOOP ;EP
  1. ;---> LOOP THROUGH PREVIOUS RA EXAMS AND PASS TO WOMEN'S HEALTH.
  1. ;
  1. ;---> QUIT IF NO WOMEN'S HEALTH SITE PARAMETER FILE ON THIS MACHINE.
  1. Q:'$D(^BWSITE(DUZ(2)))
  1. ;
  1. ;---> QUIT IF "IMPORT MAMMOGRAMS FROM RADIOLOGY" IS NOT SET TO "YES"
  1. ;---> IN THE WOMEN'S HEALTH SITE PARAMETERS.
  1. Q:'$P(^BWSITE(DUZ(2),0),U,10)
  1. ;
  1. N BRADT1,BRACOUNT,BRADFN,BRADT2,BRACS,BRA0,DIR,X,Y
  1. D GETDATE ;IHS/OIT/CLS patch 1002 ask date S BRADT1
  1. S BRACOUNT=0
  1. F S BRADT1=$O(^RADPT("AR",BRADT1)) Q:'BRADT1 D
  1. .S BRADFN=0
  1. .F S BRADFN=$O(^RADPT("AR",BRADT1,BRADFN)) Q:'BRADFN D
  1. ..S BRADT2=0
  1. ..F S BRADT2=$O(^RADPT("AR",BRADT1,BRADFN,BRADT2)) Q:'BRADT2 D
  1. ...Q:'$D(^RADPT(BRADFN,"DT",BRADT2))
  1. ...S BRACS=0
  1. ...F S BRACS=$O(^RADPT(BRADFN,"DT",BRADT2,"P",BRACS)) Q:'BRACS D
  1. ....Q:'$D(^RADPT(BRADFN,"DT",BRADT2,"P",BRACS,0))
  1. ....S BRA0=^RADPT(BRADFN,"DT",BRADT2,"P",BRACS,0)
  1. ....;---> QUIT IF THIS EXAM DOES NOT HAVE A STATUS OF COMPLETE.
  1. ....;Q:$P(BRA0,U,3)'=2
  1. ....;W !,^RADPT(BRADFN,"DT",BRADT2,"P",BRACS,0)
  1. ....D CREATE(BRADFN,BRADT2,BRACS)
  1. ....S BRACOUNT=BRACOUNT+1
  1. W !?5,BRACOUNT," procedures checked."
  1. Q
  1. ;
  1. GETDATE ;---> GET STARTDATE FOR LOOP
  1. S DIR(0)="D^:"_DT_":AE"
  1. S DIR("A")="Enter starting date"
  1. S DIR("?")="Enter date to begin searching from"
  1. D ^DIR
  1. Q:$D(DIRUT)
  1. S BRADT1=Y
  1. Q