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

BWPTCH11.m

Go to the documentation of this file.
  1. BWPTCH11 ;IHS/CMI/LAB - BW PATCH 11 ;6-Jan-2009 12:14;PLS
  1. ;;2.0;WOMEN'S HEALTH;**11**;MAY 16, 1996
  1. ;
  1. ;
  1. PRE ;
  1. S DIU=9002086.34,DIU(0)="" D EN^DIU2
  1. Q
  1. POST ;
  1. ; Add version 6.0 to the MDE multiple in the race mappings file.
  1. N BWRIEN,BWCODE,BWSITE,DR,BWREC,BWDAT,BWNEWDX,BWUSEDX,BWUIEN,BWDX0,NBWDX0,J,NEWIEN,I,BWPIEN
  1. I $$PATCH^XPDUTL("BW*2.0*11") W "POST INSTALL WILL NOT RUN AGAIN" Q
  1. S BWRIEN=0 F S BWRIEN=$O(^BWRACE(BWRIEN)) Q:'BWRIEN D
  1. .I $D(^BWRACE(BWRIEN,1,"AC",50)) D
  1. ..S BWCODE=$O(^BWRACE(BWRIEN,1,"AC",50,0)) Q:'BWCODE
  1. ..S FDA(9002086.341,"+1,"_BWRIEN_",",.01)=60 D UPDATE^DIE(,"FDA","NEWIEN") K FDA
  1. ..I $D(NEWIEN) D
  1. ...S FDA(9002086.341,NEWIEN(1)_","_BWRIEN_",",1)=BWCODE D FILE^DIE(,"FDA") K NEWIEN,FDA
  1. ;
  1. ; Add 6.0 to the MDE Version multiple in the BW SITE PARAMETER file.
  1. S BWSITE=0 F S BWSITE=$O(^BWSITE(BWSITE)) Q:'BWSITE D
  1. .;I $$GET1^DIQ(9002086.02,BWSITE,.18,"I")'=50 Q
  1. .S DR=".18///"_60 D DIE^BWFMAN(9002086.02,DR,BWSITE,.BWPOP)
  1. ;
  1. ; Update the BW RESULTS/DIAGNOSIS file with new BI-RAD codes.
  1. P2 F I=25,26,28 D CLN(I)
  1. F I=1:1 D Q:BWREC=" Q"
  1. .S BWREC=$T(DIAG+I) Q:'$L(BWREC)
  1. .S BWDAT=$P(BWREC,";;",2)
  1. .S BWNEWDX=$P(BWDAT,":"),BWUSEDX=$P(BWDAT,":",2),BWDXPRCS=$P(BWDAT,":",3) Q:BWNEWDX=""
  1. .; If the new DX already exists, do not create another entry. Update the existing entry
  1. .; to be sure that the data in the entry is correct.
  1. .I $D(^BWDIAG("B",BWNEWDX)) D Q
  1. ..S BWPIEN=$O(^BWDIAG("B",BWNEWDX,0))
  1. ..D ADDPRCS(BWDXPRCS,.BWDX0)
  1. ..S $P(^BWDIAG(BWPIEN,0),U,3)=BWDX0
  1. ..S $P(^BWDIAG(BWPIEN,0),U,20)=0
  1. ..S $P(^BWDIAG(BWPIEN,0),U,25)=$P(BWDAT,":",5)
  1. ..D REINDEX(BWPIEN)
  1. .I BWUSEDX="" D Q
  1. ..S BWDX0=""
  1. ..S FDA(9002086.31,"+1,",.01)=BWNEWDX
  1. ..S FDA(9002086.31,"+1,",.02)=$P(BWDAT,":",4) D UPDATE^DIE(,"FDA","NEWIEN") K FDA
  1. ..I $D(NEWIEN) D
  1. ...D ADDPRCS(BWDXPRCS,.BWDX0)
  1. ...S $P(^BWDIAG(NEWIEN(1),0),U,3)=BWDX0
  1. ...S $P(^BWDIAG(NEWIEN(1),0),U,20)=0
  1. ...S $P(^BWDIAG(NEWIEN(1),0),U,25)=$P(BWDAT,":",5)
  1. ...S DIK="^BWDIAG(",DA=NEWIEN(1) D IX^DIK K NEWIEN
  1. .S BWUIEN=$O(^BWDIAG("B",BWUSEDX,0)) Q:'BWUIEN
  1. .S BWPRI=$P(^BWDIAG(BWUIEN,0),U,2)
  1. .S BWDX0=$P(^BWDIAG(BWUIEN,0),U,3,99)
  1. .S BWPRC=""
  1. .D ADDPRCS(BWDXPRCS,.BWDX0)
  1. .S FDA(9002086.31,"+1,",.01)=BWNEWDX
  1. .S FDA(9002086.31,"+1,",.02)=BWPRI
  1. .D UPDATE^DIE(,"FDA","NEWIEN") K FDA
  1. .I $D(NEWIEN) D
  1. ..S $P(^BWDIAG(NEWIEN(1),0),U,3)=BWDX0
  1. .D REINDEX(NEWIEN(1))
  1. .D REINDEX(BWUIEN)
  1. .K BWDX0,NEWIEN,DIK,DA
  1. D UPDHPV
  1. K ^BWDIAG("P")
  1. S DIK="^BWDIAG(" D IXALL^DIK
  1. Q
  1. ; Add CDC Equiv. HPV results. If the result type already exists, just update the new field value.
  1. REINDEX(IEN) ;
  1. S DIK="^BWDIAG(",DA=IEN D IX^DIK
  1. Q
  1. UPDHPV ;
  1. N I,DATA,RESDAT,RES,CDCVAL,PRIO,DR,FDA
  1. D CLN(40)
  1. F I=1:1 D Q:DATA=" Q"
  1. .S DATA=$T(HPV+I) Q:DATA=" Q"
  1. .S RESDAT=$P(DATA,";;",2) Q:RESDAT=""
  1. .S RES=$P(RESDAT,":"),CDCVAL=$P(RESDAT,":",2),PRIO=$P(RESDAT,":",3)
  1. .I $D(^BWDIAG("B",RES)) D Q
  1. ..S RESIEN=$O(^BWDIAG("B",RES,0))
  1. ..S DR="1///"_CDCVAL D DIE^BWFMAN(9002086.31,DR,RESIEN,.BWPOP)
  1. ..D ADDHPV(RESIEN)
  1. ..S DIK="^BWDIAG(",DA=RESIEN D IX^DIK
  1. .S FDA(9002086.31,"+1,",.01)=RES
  1. .S FDA(9002086.31,"+1,",.02)=PRIO
  1. .S FDA(9002086.31,"+1,",1)=CDCVAL
  1. .D UPDATE^DIE(,"FDA","NEWIEN") K FDA
  1. .I '$D(NEWIEN) Q
  1. .S RESIEN=$G(NEWIEN(1))
  1. .D ADDHPV(RESIEN)
  1. .S DIK="^BWDIAG(",DA=RESIEN D IX^DIK
  1. .K NEWIEN
  1. Q
  1. ; Clean up old entries with pointers to value passed in.
  1. ; INPUT : PRIEN - The value pointed to by the ASSOCIATED PROCEDURE portion of the BW RESULT/DIAGNOSIS file.
  1. CLN(PRIEN) ;
  1. N BWIEN,I,VAL,J,NODE,DIK,DA,ARY
  1. Q:'PRIEN
  1. S BWIEN=0 F S BWIEN=$O(^BWDIAG(BWIEN)) Q:'BWIEN D
  1. .K ARY
  1. .F I=3:1:19 D
  1. ..S VAL=$P(^BWDIAG(BWIEN,0),U,I) I VAL S ARY(VAL)=""
  1. .I '$D(ARY(PRIEN)) Q
  1. .F I=3:1:19 S $P(^BWDIAG(BWIEN,0),U,I)=""
  1. .K ARY(PRIEN) I '$O(ARY(0)) Q
  1. .S NODE=3
  1. .S J=0 F S J=$O(ARY(J)) Q:'J D
  1. ..S $P(^BWDIAG(BWIEN,0),U,NODE)=J,NODE=NODE+1
  1. .;S DIK="^BWDIAG(",DA=BWIEN D IX^DIK
  1. Q
  1. ; Add HPV procedure to this diagnosis
  1. ADDHPV(RESIEN) ;
  1. N I,VAL,DONE,SETPC
  1. S (DONE,SETPC)=0
  1. F I=3:1:19 D Q:DONE
  1. .S VAL=$P(^BWDIAG(RESIEN,0),U,I)
  1. .I VAL=$O(^BWPN("B","HPV SCREEN",0)) S DONE=1 Q
  1. .I 'VAL S DONE=1,SETPC=I Q
  1. Q:'SETPC
  1. S $P(^BWDIAG(RESIEN,0),U,SETPC)=$O(^BWPN("B","HPV SCREEN",0))
  1. Q
  1. ; Add procedures to new code
  1. ADDPRCS(BWDXPRCS,BWDX0) ;
  1. N J,PC,BWPRC,DONE
  1. S BWPRC=""
  1. F J=1:1:17 D Q:BWPRC=""
  1. .S BWPRC=$P(BWDXPRCS,",",J) Q:BWPRC=""
  1. .S BWPRCIEN=$O(^BWPN("B",BWPRC,0))
  1. .S $P(BWDX0,U,J)=BWPRCIEN
  1. ; find the first blank entry and add IEN for VAGINAL ULTRASOUND
  1. S DONE=0
  1. F K=1:1:17 D Q:DONE
  1. .; If this is already part of the BU result set, quit.
  1. .I $P(BWDX0,U,K)=$O(^BWPN("B","BREAST ULTRASOUND",0)) S DONE=1 Q
  1. .I $P(BWDX0,U,K) Q
  1. .S $P(BWDX0,U,K)=$O(^BWPN("B","BREAST ULTRASOUND",0)),DONE=1
  1. Q
  1. ; Remove procedure from old code
  1. REMPRCS(BWDXPRCS,BWUIEN) ;
  1. N I,ARY,BWPRC,BWPRCIEN,A,TARY,PIECE,ITEM,LOOP
  1. ; build array of items to be removed
  1. F A=1:1:17 D Q:BWPRC=""
  1. .S BWPRC=$P(BWDXPRCS,",",A) Q:BWPRC=""
  1. .S BWPRCIEN=$O(^BWPN("B",BWPRC,0))
  1. .S TARY(BWPRCIEN)=""
  1. ; build array of items currently defined for the result/diagnosis and remove all items from this result/diagnosis
  1. F I=3:1:19 D
  1. .S VAL=$P(^BWDIAG(BWUIEN,0),U,I) Q:'VAL
  1. .S ARY(I)=VAL,$P(^BWDIAG(BWUIEN,0),U,I)="" S DIK="^BWDIAG(",DA=BWUIEN D IX2^DIK Q
  1. ; put the diagnosis items back in, but if the ARY contains one of the values in TARY, skip it, as this is to be removed.
  1. S PIECE=3
  1. S LOOP=0 F S LOOP=$O(ARY(LOOP)) Q:'LOOP D
  1. .S ITEM=$G(ARY(LOOP))
  1. .I $D(TARY(ITEM)) Q
  1. .S $P(^BWDIAG(BWUIEN,0),U,PIECE)=$G(ARY(LOOP))
  1. .S PIECE=PIECE+1
  1. Q
  1. DIAG ;
  1. ;;BI-RADS 0-Add Imag Eval Needed::MAMMOGRAM DX BILAT,MAMMOGRAM DX UNILAT,MAMMOGRAM SCREENING:6:13
  1. ;;BI-RADS 1:Negative:MAMMOGRAM DX BILAT,MAMMOGRAM DX UNILAT,MAMMOGRAM SCREENING
  1. ;;BI-RADS 2:Benign Finding, Negative:MAMMOGRAM DX BILAT,MAMMOGRAM DX UNILAT,MAMMOGRAM SCREENING
  1. ;;BI-RADS 3:Prbly Benign, Short Int F/U:MAMMOGRAM DX BILAT,MAMMOGRAM DX UNILAT,MAMMOGRAM SCREENING
  1. ;;BI-RADS 4:Suspicious Abnorm, Consider Bx:MAMMOGRAM DX BILAT,MAMMOGRAM DX UNILAT,MAMMOGRAM SCREENING
  1. ;;BI-RADS 5:Highly Sug of Malig, Tk Action:MAMMOGRAM DX BILAT,MAMMOGRAM DX UNILAT,MAMMOGRAM SCREENING
  1. ;;BI-RADS 0-Prev Films Req:Incomplete, Previous Films Req:MAMMOGRAM DX BILAT,MAMMOGRAM DX UNILAT,MAMMOGRAM SCREENING:7
  1. Q
  1. HPV ;
  1. ;;Positive:1:10
  1. ;;Negative:2:20
  1. ;;Test Not Done:3:30
  1. ;;Unknown:9:90
  1. Q