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

BTIUPCC3.m

Go to the documentation of this file.
  1. BTIUPCC3 ;IHS/CIA/MGH - TIU Object Support ;25-Nov-2015 10:33;DU
  1. ;;1.0;TEXT INTEGRATION UTILITIES;**1003,1004,1005,1006,1012,1013,1015**;NOV 04,2004;Build 3
  1. ;IHS/CIA/MGH New routine for objects added for TIU use
  1. ;Patch 1006 incorporated reproductive history field changes
  1. REPRO(DFN,TARGET,MODE) ;EP Return reproductive history
  1. N TOT,GRAV,CNT,PARA,LC,SA,TA,X,OTHER,BTIUN,BTIUM,G,MB,FT,PRE,EC
  1. K @TARGET
  1. I $P(^DPT(DFN,0),U,2)="M" S @TARGET@(1,0)="Patient is male" G END
  1. I '$D(^AUPNREP(DFN,0)) S @TARGET@(1,0)="No history on file" G END
  1. S BTIUN=$G(^AUPNREP(DFN,0))
  1. S G=$$GET1^DIQ(9000017,+$G(DFN),1103)
  1. ;I G="" D OLD
  1. ;E D NEW
  1. D NEW
  1. END Q "~@"_$NA(@TARGET)
  1. NEW ;Get the reproductive history using the new fields
  1. S MB=$$GET1^DIQ(9000017,+$G(DFN),1105)
  1. S FT=$$GET1^DIQ(9000017,+$G(DFN),1107)
  1. S PRE=$$GET1^DIQ(9000017,+$G(DFN),1109)
  1. S EC=$$GET1^DIQ(9000017,+$G(DFN),1111)
  1. S LC=$$GET1^DIQ(9000017,+$G(DFN),1113)
  1. S TA=$$GET1^DIQ(9000017,+$G(DFN),1131)
  1. S SA=$$GET1^DIQ(9000017,+$G(DFN),1133)
  1. S CNT=1
  1. S @TARGET@(CNT,0)="Gravida: "_G
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="Multiple Births: "_MB
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="Full Term: "_FT
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="Premature Births: "_PRE
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="Ectopics: "_EC
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="Living Children: "_LC
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="Theraputic Abortions: "_TA
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="Spontaneous Abortions: "_SA
  1. D CONT(MODE)
  1. Q
  1. OLD ;Get the reproductive history using the old fields
  1. S X=$P(BTIUN,U,2)
  1. ;Patch 1005 upgraded the reproductive history
  1. I X]"" D
  1. .S GRAV=$P(X,"P",1),OTHER=$P(X,"P",2)
  1. .S PARA=$P(OTHER,"LC",1),OTHER=$P(OTHER,"LC",2)
  1. .S LC=$P(OTHER,"SA",1),OTHER=$P(OTHER,"SA",2)
  1. .S SA=$P(OTHER,"TA",1),OTHER=$P(OTHER,"TA",2)
  1. .S TA=OTHER
  1. .S TOT=GRAV_" P"_PARA_" LC"_LC_" SA"_SA_" TA"_TA
  1. .S CNT=1
  1. .S @TARGET@(CNT,0)=TOT_" (obtained on, "_$$GET1^DIQ(9000017,+$G(DFN),1.1)_")"
  1. .S X=$P(BTIUN,U,4) S:X="" X="<LMP not recorded>"
  1. .I +X S X="LMP: "_$$GET1^DIQ(9000017,+$G(DFN),2)_" (recorded on, "_$$GET1^DIQ(9000017,+$G(DFN),2.1)_")"
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)=X
  1. .D LMP
  1. Q
  1. LMP ;Get the LMP data
  1. N FPBEGIN,FPDATE
  1. S X=$$GET1^DIQ(9000017,+$G(DFN),3)
  1. S CNT=CNT+1
  1. I X="" D
  1. .S @TARGET@(CNT,0)="FP METHOD: "_$S(X="":"None Recorded",1:X)
  1. E D
  1. .S FPBEGIN=$$GET1^DIQ(9000017,DFN,3.05),FPDATE=$$GET1^DIQ(9000017,DFN,3.1)
  1. .S @TARGET@(CNT,0)="FP METHOD: "_X_" (begun "_FPBEGIN_"; recorded "_FPDATE_")"
  1. .S X=$P(BTIUN,U,9) I X]"" D EDC
  1. Q
  1. EDC NEW X,HOW,EDCDT
  1. S X=$$GET1^DIQ(9000017,+$G(DFN),4)
  1. S CNT=CNT+1
  1. I X="" S @TARGET@(CNT,0)="EDC: "_$S(X="":"None Recorded",1:X) Q
  1. S HOW=$$GET1^DIQ(9000017,+DFN,4.05),EDCDT=$$GET1^DIQ(9000017,DFN,4.1)
  1. S @TARGET@(CNT,0)="EDC: "_X_" (determined by "_$S(HOW="":"UNKNOWN METHOD",1:HOW)_" on "_EDCDT_")"
  1. Q
  1. SURG(DFN,DATE) ;EP
  1. ; returns multi-line listing of patient's surgical history;PATC
  1. ; If DATE=1, return date each item obtained
  1. NEW COUNT,TIUX,LINE,TIUA,BTIUIVD,BTIUSQ,BTIUDFN,BHSICD
  1. S COUNT=0
  1. K ^TMP("BTIUPCC3",$J)
  1. ;
  1. ; for this patient, find all surgical history entries
  1. S TIUX=0,LINE=""
  1. I '$D(^AUPNVPRC("AC",DFN)) S ^TMP("BTIUPCC3",$J,1,0)="No procedures found for pt"
  1. S COUNT=0
  1. S BTIUIVD=0 F BTIUSQ=0:0 S BTIUIVD=$O(^AUPNVPRC("AA",DFN,BTIUIVD)) Q:'BTIUIVD D
  1. .S BTIUDFN=0 F BTIUDFN=0:0 S BTIUDFN=$O(^AUPNVPRC("AA",DFN,BTIUIVD,BTIUDFN)) Q:'BTIUDFN D
  1. ..K TIUA D ENP^XBDIQ1(9000010.08,BTIUDFN,".01:.04","TIUA(")
  1. ..D HOSCHK
  1. ..I BHSICD'="" D
  1. ...S LINE=TIUA(.04)_" ["_TIUA(.019)_"]" ;prov narrative [ICD dx code]
  1. ...I $G(DATE) S LINE=LINE_" - "_TIUA(.03) ;date noted
  1. ...S COUNT=$G(COUNT)+1 S ^TMP("BTIUPCC3",$J,COUNT,0)=LINE
  1. ;
  1. ;Check for surgical CPT codes
  1. S BTIUIVD=0 F S BTIUIVD=$O(^AUPNVCPT("C",DFN,BTIUIVD)) Q:'BTIUIVD D
  1. .D CHKCPT
  1. I '$D(^TMP("BTIUPCC3",$J)) Q "No Surgical History Found for Patient"
  1. Q "~@^TMP(""BTIUPCC3"",$J)"
  1. HOSCHK ;
  1. ;Check for real surgical codes
  1. ;Patch 1013 changed to check icd9 and icd-10 in taxonomy
  1. N TAXIEN,ARRAY
  1. ;Patch 1015 Find minor procedure using API
  1. I $$ICD^ATXAPI(TIUA(.01),$O(^ATXAX("B","APCH MINOR SURGICAL PROCS",0)),0) S BHSICD="" Q
  1. ;I TIUA(.01)>85 S BHSICD="" Q
  1. ;I TIUA(.01)=69.7 S BHSICD="" Q
  1. ;I TIUA(.01)\1=23 S BHSICD="" Q
  1. ;I TIUA(.01)\1=24 S BHSICD="" Q
  1. ;I $E(TIUA(.01),1,4)="38.9" S BHSICD="" Q
  1. E S BHSICD=1
  1. Q
  1. CHKCPT ;Check for surgical CPT codes
  1. N REC,CPTIEN,CODE
  1. S REC=$G(^AUPNVCPT(BTIUIVD,0)) Q:REC=""
  1. S CPTIEN=$P(REC,U) Q:CPTIEN=""
  1. S CODE=$P($G(^ICPT(CPTIEN,0)),U) Q:CODE=""
  1. I ((CODE<10000)&(CODE'="00099"))!(CODE>69999) Q
  1. N TAXIEN,ARRAY2
  1. ;Patch 1015 added call to API to check
  1. I $$ICD^ATXAPI(CPTIEN,$O(^ATXAX("B","APCH HS MAJOR PROCEDURE CPTS",0)),1) D
  1. .K TIUA D ENP^XBDIQ1(9000010.18,BTIUIVD,".01:.04","TIUA(")
  1. .;I TIUA(.04)="" Q
  1. .S LINE=TIUA(.04)_" ["_TIUA(.019)_"]" ;prov narrative [ICD dx cod
  1. .I $G(DATE) S LINE=LINE_" - "_TIUA(.03) ;date noted
  1. .S COUNT=$G(COUNT)+1 S ^TMP("BTIUPCC3",$J,COUNT,0)=LINE
  1. Q
  1. CONT(MODE) ;Get contraception data
  1. N BHX,BHC,TYP,START,END,LINE,CCNT,LIN1
  1. S CCNT=0
  1. S CNT=CNT+1 S @TARGET@(CNT,0)="FP METHOD: "
  1. S BHX=0 F S BHX=$O(^AUPNREP(DFN,2101,BHX)) Q:BHX'=+BHX D
  1. .Q:$D(^AUPNREP(DFN,2101,BHX,1))>0
  1. .S BHC=$P(^AUPNREP(DFN,2101,BHX,0),U,1) I BHC D
  1. ..S TYP=$P(^AUTTCM(BHC,0),U)
  1. ..S START=$P(^AUPNREP(DFN,2101,BHX,0),U,2) I START]"" S START=$$FIXDT^BHSFAM1(START)
  1. ..S END=$P(^AUPNREP(DFN,2101,BHX,0),U,3) I END]"" S END=$$FIXDT^BHSFAM1(END)
  1. ..S LINE=$S(TYP="":"None Recorded",1:TYP)
  1. ..I MODE="A"&(END="") D
  1. ...S CNT=CNT+1,CCNT=CCNT+1
  1. ...S LINE=" "_LINE_" Start Dt: "_START
  1. ...S @TARGET@(CNT,0)=LINE
  1. ..I MODE="C" D
  1. ...S CNT=CNT+1,CCNT=CCNT+1
  1. ...S LINE=" "_LINE_" Start Dt: "_START
  1. ...S @TARGET@(CNT,0)=LINE
  1. ...I END'="" D
  1. ....S CNT=CNT+1,CCNT=CCNT+1
  1. ....S LIN1=""
  1. ....I $P(^AUPNREP(DFN,2101,BHX,0),U,5)]"" S LIN1=" Reason Discontinued: "_$P(^AUPNREP(DFN,2101,BHX,0),U,5)
  1. ....S @TARGET@(CNT,0)=" End Dt: "_END_LIN1
  1. Q