| 1 | ONCOCFR ;Hines OIFO/GWB - RADIOLOGY CASEFINDING; 7/21/93
 | 
|---|
| 2 |  ;;2.11;ONCOLOGY;**13,24,25,26,27,34,37,39,46**;Mar 07, 1995;Build 39
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | ST ;Start RAD/NUC MED PATIENT (70) file search
 | 
|---|
| 5 |  W @IOF
 | 
|---|
| 6 |  W !!!?10,"******** RADIOLOGY: SUSPICIOUS MALIGNANCY SEARCH ********",!!
 | 
|---|
| 7 |  W ?10,"This option searches the RAD/NUC MED PATIENT file and will",!
 | 
|---|
| 8 |  W ?10,"add to your 'suspense list' in the ONCOLOGY PATIENT file.",!
 | 
|---|
| 9 | MG S MG=0,D0=0 F  S D0=$O(^RA(78.3,"B",D0)) Q:D0=""  S XX=$TR(D0,"malig","MALIG") I XX["MALIG" S MG=$O(^(D0,0)) Q
 | 
|---|
| 10 |  G T:MG W !!?15,"MALIGNACY diagnostic code is not defined in the"
 | 
|---|
| 11 |  W !?15,"Radiology Diagnostic Codes File (#78.3). Please"
 | 
|---|
| 12 |  W !?15,"REQUEST Radiology to code suspicious MALIGNANCIES"
 | 
|---|
| 13 |  W !!!?10,"MUST terminate Radiology Search - no meaningful search code" G EX
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 | T ;Start Date/End Date
 | 
|---|
| 16 |  S OSP=$O(^ONCO(160.1,"C",DUZ(2),0))
 | 
|---|
| 17 |  K DIR
 | 
|---|
| 18 |  S Y=$P(^ONCO(160.1,OSP,0),U,6)
 | 
|---|
| 19 |  I Y="" S Y=DT
 | 
|---|
| 20 |  S Y=$E(Y,4,5)_"-"_$E(Y,6,7)_"-"_($E(Y,1,3)+1700)
 | 
|---|
| 21 |  S DIR("B")=Y
 | 
|---|
| 22 |  W !
 | 
|---|
| 23 |  S DIR("A")="          Start Date",DIR(0)="D" D ^DIR
 | 
|---|
| 24 |  G EX:Y<1!(Y[U)
 | 
|---|
| 25 |  S (SD,X)=Y D DD^%DT W "  ",Y S WSD=Y
 | 
|---|
| 26 |  K DIR
 | 
|---|
| 27 |  S DIR("A")="            End Date",DIR(0)="D" D ^DIR
 | 
|---|
| 28 |  G EX:Y=""!(Y[U)
 | 
|---|
| 29 |  I Y<SD!(Y>DT) W *7,?40,"Invalid date sequence!!",! G T
 | 
|---|
| 30 |  S $P(^ONCO(160.1,OSP,0),U,6)=Y
 | 
|---|
| 31 |  S (ED,X)=Y D DD^%DT W "  ",Y,!
 | 
|---|
| 32 |  S WED=Y
 | 
|---|
| 33 |  S DIR("A")="          Dates OK",DIR("B")="Y",DIR(0)="Y" D ^DIR
 | 
|---|
| 34 |  G T:'Y,EX:Y[U!(Y="")
 | 
|---|
| 35 |  W !!?15,"We will find suspicious malignancies"
 | 
|---|
| 36 |  W !?15,"From: ",WSD_" To: "_WED,!
 | 
|---|
| 37 |  W ! S ONCO("SD")=SD,ONCO("ED")=ED,ONCO("MG")=MG
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 | TSK ;Create task
 | 
|---|
| 40 |  K IO("Q") S %ZIS="Q" D ^%ZIS I POP S ONCOUT="" G EX
 | 
|---|
| 41 |  I '$D(IO("Q")) D SER^ONCOCFR G EX
 | 
|---|
| 42 |  S ZTRTN="SER^ONCOCFR",ZTSAVE("ONCO*")="",ZTDESC="ONCOLOGY RADIOLOGY SEARCH" D ^%ZTLOAD G EX
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 | SER ;Search RAD/NUC MED PATIENT (70) file/Set multidivisional variables
 | 
|---|
| 45 |  S AFFDIV=$G(DUZ(2)),ONCDIVSP=$O(^ONCO(160.1,"C",AFFDIV,""))
 | 
|---|
| 46 |  I ONCDIVSP="" W !!,"User does not have an associated DIVISION!",!! G EX
 | 
|---|
| 47 |  F Z=0:0 S Z=$O(^ONCO(160.1,ONCDIVSP,6,Z)) Q:Z'>0  S AFFDIV=AFFDIV_U_$G(^ONCO(160.1,ONCDIVSP,6,Z,0))
 | 
|---|
| 48 |  K ^TMP("ONCO",$J) S (XSD,XDT)=ONCO("SD")-.1111111,XED=ONCO("ED")+.9999999,MG=ONCO("MG") F J=0,1,2 S ^TMP("ONCO",$J,J)=0
 | 
|---|
| 49 |  F  S XDT=$O(^RADPT("AR",XDT)) Q:XDT=""!(XDT>XED)  S D0=0 F  S D0=$O(^RADPT("AR",XDT,D0)) Q:D0'>0  S D1=$O(^RADPT("AR",XDT,D0,0)) D
 | 
|---|
| 50 |  .S D2=0 F  S D2=$O(^RADPT(D0,"DT",D1,"P",D2)) Q:D2'>0  D
 | 
|---|
| 51 |  ..S RA0=$G(^(D2,0)) I RA0="" Q
 | 
|---|
| 52 |  ..S PC13=$P(RA0,U,13) I PC13="" Q
 | 
|---|
| 53 |  ..S MG=$P($G(^RA(78.3,PC13,0)),U,1),MG=$TR(MG,"malig","MALIG")
 | 
|---|
| 54 |  ..I MG["MALIG" S RA($P(^RADPT(D0,0),U))=$P(XDT,".")_U_$P(RA0,U,2)_U_D1
 | 
|---|
| 55 |  ..S D3=0 F  S D3=$O(^RADPT(D0,"DT",D1,"P",D2,"DX",D3)) Q:D3'>0  D
 | 
|---|
| 56 |  ...S RASDC0=$G(^(D3,0)) I RASDC0="" Q
 | 
|---|
| 57 |  ...S PC1=$P(RASDC0,U,1) I PC1="" Q
 | 
|---|
| 58 |  ...S MG=$P($G(^RA(78.3,PC1,0)),U,1),MG=$TR(MG,"malig","MALIG")
 | 
|---|
| 59 |  ...I MG["MALIG" S RA($P(^RADPT(D0,0),U))=$P(XDT,".")_U_$P(RA0,U,2)_U_D1
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 | CK ;Check ONCOLOGY PATIENT (160) file
 | 
|---|
| 62 | GT S XX=0 F  S XX=$O(RA(XX)) Q:XX=""  D
 | 
|---|
| 63 |  .D DIV Q:DVMTCH=0
 | 
|---|
| 64 |  .S ^TMP("ONCO",$J,0)=^TMP("ONCO",$J,0)+1
 | 
|---|
| 65 |  .S HT=0,X=XX_";DPT("
 | 
|---|
| 66 |  .S XDT=$P(RA(XX),U),XD0=$O(^ONCO(160,"B",X,0)),ONCIEN=XD0
 | 
|---|
| 67 |  .I XD0="" D MR Q
 | 
|---|
| 68 |  .I XD0'="" S ONCDIVS="",ONCS="" F  S ONCS=$O(^ONCO(160,XD0,"SUS","C",ONCS)) Q:ONCS'>0  S ONCDIVS=ONCDIVS_U_ONCS
 | 
|---|
| 69 |  .I ONCDIVS'[DUZ(2) D
 | 
|---|
| 70 |  ..S (D0,DA)=XD0 I '$D(^ONCO(165.5,"C",XD0)) D N2 Q
 | 
|---|
| 71 |  ..I $D(^ONCO(165.5,"C",XD0)) D CKP I 'HT D N2 Q
 | 
|---|
| 72 |  .Q
 | 
|---|
| 73 |  ;
 | 
|---|
| 74 | RPT ; Generate report
 | 
|---|
| 75 |  I $G(^TMP("ONCO",$J,2))=0 S DIC="^ONCO(160.1,",BY="[ONCO NEG-REPORT]"
 | 
|---|
| 76 |  E  D
 | 
|---|
| 77 |  .S DIC="^ONCO(160,"
 | 
|---|
| 78 |  .S BY="@75,INTERNAL(#3),75,.01"
 | 
|---|
| 79 |  .S FR=DUZ(2)_","_ONCO("SD"),TO=DUZ(2)_","_ONCO("ED")
 | 
|---|
| 80 |  .S FLDS="[ONCO RAD-CASEFINDING RPT]"
 | 
|---|
| 81 |  .Q
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 | PRT ; Call print routine
 | 
|---|
| 84 |  S L=0,IOP=ION,DIOEND="D WP^ONCOCFR"
 | 
|---|
| 85 |  D EN1^DIP G EX
 | 
|---|
| 86 |  ;
 | 
|---|
| 87 | WP ; Wrap-up report
 | 
|---|
| 88 |  W !!!?30,"RADIOLOGY CASEFINDING RESULTS"
 | 
|---|
| 89 |  W !!?30,^TMP("ONCO",$J,0)_" Cases found",!?30,^TMP("ONCO",$J,1)_" New Patients added",!?30,^TMP("ONCO",$J,2)_" New cases added",!!
 | 
|---|
| 90 |  Q
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 | CKP ;CHECK Primary File
 | 
|---|
| 93 |  S XD1=0 F  S XD1=$O(^ONCO(165.5,"C",XD0,XD1)) Q:XD1'>0  I $$DIV^ONCFUNC(XD1)=DUZ(2) D
 | 
|---|
| 94 |  .S XDX=$P($G(^ONCO(165.5,XD1,0)),U,16) I XDX=XDT S HT=1 Q
 | 
|---|
| 95 |  .S XDX=$P($G(^ONCO(165.5,XD1,1)),U,10) I XDX=XDT S HT=1 Q
 | 
|---|
| 96 |  .Q
 | 
|---|
| 97 |  Q
 | 
|---|
| 98 |  ;
 | 
|---|
| 99 | MR ;Create new ONCOLOGY PATIENT (160) record
 | 
|---|
| 100 |  S DIC="^ONCO(160,",DIC(0)="Z" D FILE^DICN S (ONCIEN,D0,DA)=+Y,^TMP("ONCO",$J,1)=^TMP("ONCO",$J,1)+1
 | 
|---|
| 101 | N2 ;Create new SUSPENSE (160,75) record
 | 
|---|
| 102 |  K DD,DO
 | 
|---|
| 103 |  S DA(1)=ONCIEN,DIC="^ONCO(160,"_DA(1)_",""SUS"","
 | 
|---|
| 104 |  S DIC(0)="L",DIC("P")=$P(^DD(160,75,0),U,2),X=XDT
 | 
|---|
| 105 |  D FILE^DICN
 | 
|---|
| 106 |  K DIE S DA(1)=ONCIEN,DIE="^ONCO(160,"_DA(1)_",""SUS"","
 | 
|---|
| 107 |  S (ONCSUB,DA)=+Y,RDP=$P(RA(XX),U,2)
 | 
|---|
| 108 |  S DR="1///^S X=DT;2///^S X=""RA"";3////^S X=DUZ(2);6////^S X=RDP" D ^DIE
 | 
|---|
| 109 |  S ^TMP("ONCO",$J,2)=^TMP("ONCO",$J,2)+1
 | 
|---|
| 110 |  Q
 | 
|---|
| 111 |  ;
 | 
|---|
| 112 | EX ;EXIT
 | 
|---|
| 113 |  K ONCO,ED,HT,MG,OSP,RA,RA0,RASDC0,RAO,SD,WED,WSD,XX,DIJ,DP,D,D0
 | 
|---|
| 114 |  K %T,%ZISOS
 | 
|---|
| 115 |  K AFFDIV,DVMTCH,INST,ONCDIVSP,RE1,Z,^TMP("ONCO",$J) D ^%ZISC
 | 
|---|
| 116 |  Q
 | 
|---|
| 117 |  ;
 | 
|---|
| 118 | DIV ;Division match
 | 
|---|
| 119 |  S DVMTCH=1,INST="",RE1=$P(RA(XX),U,3) I RE1="" Q
 | 
|---|
| 120 |  S INST=$P($G(^RADPT(XX,"DT",RE1,0)),U,3) I INST="" Q
 | 
|---|
| 121 |  I AFFDIV'[INST S DVMTCH=0 Q
 | 
|---|
| 122 |  Q
 | 
|---|