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

BTIULO7A.m

Go to the documentation of this file.
  1. BTIULO7A ;IHS/ITSC/LJF - IHS OBJECTS ADDED IN PATCHES;22-Apr-2015 17:07;DU
  1. ;;1.0;TEXT INTEGRATION UTILITIES;**1012,1013**;NOV 04, 2004;Build 33
  1. OLD(DFN,TARGET,MODE) ;Old objects
  1. S X=$$GET1^DIQ(9000017,+$G(DFN),1)
  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 X=GRAV_" P"_PARA_" LC"_LC_" SA"_SA_" TA"_TA
  1. I (MODE="B")!(X="") Q "R HX: "_$S(X="":"None Recorded",1:X)
  1. S @TARGET@(1,0)="R HX: "_X_" (recorded on "_$$GET1^DIQ(9000017,+$G(DFN),1.1)_")"
  1. Q "~@"_$NA(@TARGET)
  1. ;
  1. FPM(DFN,TARGET,MODE) ;EP; CONTRACEPTION-BRIEF object
  1. ;MODE="B" or "E"
  1. NEW X,FPBEGIN,FPDATE,BHX,TYP,START,END,CNT,LINE,LIN1,BHC
  1. K @TARGET
  1. S CNT=0
  1. I $P(^DPT(DFN,0),U,2)="M" Q "Patient is male"
  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. ..I CNT=0 D
  1. ...S CNT=CNT+1 S @TARGET@(CNT,0)=""
  1. ...S CNT=CNT+1 S @TARGET@(CNT,0)="FP METHOD: "
  1. ..S LINE=$S(TYP="":"None Recorded",1:TYP)
  1. ..I MODE="B"&(END="") D
  1. ...S CNT=CNT+1
  1. ...S LINE=" "_LINE_" Start Dt: "_START
  1. ...S @TARGET@(CNT,0)=LINE
  1. ..I MODE="E" D
  1. ...S CNT=CNT+1
  1. ...S LINE=" "_LINE_" Start Dt: "_START
  1. ...S @TARGET@(CNT,0)=LINE
  1. ...I END'="" D
  1. ....S CNT=CNT+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 "~@"_$NA(@TARGET)
  1. ;
  1. TODAYVIT(PAT) ;EP; returns all vitals taken today
  1. NEW MEAS,VST,VDT,END,APCLV,ERR,TYPE,VALUE,VDATE
  1. ;
  1. ; for each visit patient had today, find all measurements taken
  1. S VDT=9999999-DT,END=VDT_".2359"
  1. F S VDT=$O(^AUPNVSIT("AA",PAT,VDT)) Q:'VDT!(VDT>END) D
  1. . S VST=$O(^AUPNVSIT("AA",PAT,VDT,0)) Q:'VST
  1. . S ERR=$$PCCVF^APCLV(VST,"MEASUREMENT","7;8") I ERR Q
  1. . S X=0 F S X=$O(APCLV(X)) Q:'X D
  1. . . S MEAS($P(APCLV(X),U),VDT)=$P(APCLV(X),U,2)
  1. ;
  1. ; loop through all measurements found for patient and date; pick most recent ones
  1. S RESULT=""
  1. S TYPE=0 F S TYPE=$O(MEAS(TYPE)) Q:TYPE="" D
  1. . S VDATE=$O(MEAS(TYPE,""),-1) ;get latest date/time
  1. . S VALUE=MEAS(TYPE,VDATE) ;get value for this measurement & date/time
  1. . I TYPE="WT" S VALUE=$J(VALUE,5,2)_" ("_$J((VALUE*.454),5,2)_" kg)"
  1. . I ((TYPE="HT")!(TYPE="HC")!(TYPE="WC")!(TYPE="AG")) S VALUE=$J(VALUE,5,2)_" ("_$J((VALUE*2.54),5,2)_" cm)"
  1. . I TYPE="TMP" S VALUE=VALUE_" ("_(((10*((VALUE-32)/1.8))\1)/10)_" C)"
  1. . I TYPE="BMI" D
  1. . .S VALUE=$J(VALUE,5,2)
  1. . .I $$PNM^APCLSIL1(DFN,DT)="Y" S VALUE=VALUE_"*"
  1. . S RESULT=RESULT_TYPE_":"_VALUE_", "
  1. S RESULT=$E(RESULT,1,$L(RESULT)-2) ;remove last comma
  1. Q RESULT
  1. ;
  1. TODAYLAB(PAT) ;EP; returns all labs taken today;PATCH 1002 new code
  1. NEW VDT,END,VISIT,COUNT,TIUX,LINE,TIUA
  1. K ^TMP("BTIULO",$J)
  1. ;
  1. ; for each visit patient had today, find all labs
  1. S VDT=9999999-DT,END=VDT_".2359"
  1. F S VDT=$O(^AUPNVSIT("AA",PAT,VDT)) Q:'VDT Q:VDT>END D
  1. . S VISIT=0 F S VISIT=$O(^AUPNVSIT("AA",PAT,VDT,VISIT)) Q:'VISIT D
  1. . . S TIUX=0,LINE="" F S TIUX=$O(^AUPNVLAB("AD",VISIT,TIUX)) Q:'TIUX D
  1. . . . K TIUA D ENP^XBDIQ1(9000010.09,TIUX,".01;.04;.05;1109","TIUA(")
  1. . . . I TIUA(.04)="",TIUA(1109)="RESULTED" Q
  1. . . . S LINE=" "_$$PAD^BTIULO7(TIUA(.01),25)_" " ;lab test
  1. . . . S LINE=LINE_$$PAD^BTIULO7(TIUA(.04),10)_TIUA(.05) ;result
  1. . . . I TIUA(.04)="" S LINE=LINE_TIUA(1109)
  1. . . . S COUNT=$G(COUNT)+1 S ^TMP("BTIULO",$J,COUNT,0)=LINE
  1. ;
  1. I '$D(^TMP("BTIULO",$J)) Q "No Labs Found for Today"
  1. Q "~@^TMP(""BTIULO"",$J)"
  1. ;
  1. TODAYMED(PAT,SIG) ;EP; returns all meds dispensed today;PATCH 1002 new code
  1. ; If SIG=1 include sig
  1. NEW VDT,END,VISIT,COUNT,RESULT,I
  1. K ^TMP("BTIULO",$J)
  1. ;
  1. ; for each visit patient had today, find all meds
  1. S VDT=9999999-DT,END=VDT_".2359"
  1. F S VDT=$O(^AUPNVSIT("AA",PAT,VDT)) Q:'VDT Q:VDT>END D
  1. . S VISIT=0 F S VISIT=$O(^AUPNVSIT("AA",PAT,VDT,VISIT)) Q:'VISIT D
  1. . . K RESULT
  1. . . I $G(SIG) D GETSIG^BTIULO5(.RESULT,VISIT) I 1
  1. . . E D GETMED^BTIULO5(.RESULT,VISIT)
  1. . . ;
  1. . . S I=0 F S I=$O(RESULT(I)) Q:'I D
  1. . . . S COUNT=$G(COUNT)+1
  1. . . . S ^TMP("BTIULO",$J,COUNT,0)=RESULT(I)
  1. ;
  1. I '$D(^TMP("BTIULO",$J)) Q "No Medications Found for Today"
  1. Q "~@^TMP(""BTIULO"",$J)"
  1. ;
  1. QUAL(MEAS) ; Get qualifiers for a measurement
  1. N QUALS,QUALN,QUALIF,TYPE,TNAME,O2
  1. S (QUALIF,O2)=""
  1. S TYPE=$P($G(^AUPNVMSR(MEAS,0)),U,1)
  1. S TNAME=$P($G(^AUTTMSR(TYPE,0)),U,1)
  1. S QUALS=0 F S QUALS=$O(^AUPNVMSR(MEAS,5,QUALS)) Q:QUALS="" D
  1. .S QUALN=$P($G(^AUPNVMSR(MEAS,5,QUALS,0)),U,1)
  1. .I +QUALN S QUALN=$P($G(^GMRD(120.52,QUALN,0)),U,1)
  1. .I QUALIF="" S QUALIF=QUALN
  1. .E I QUALN'="" S QUALIF=QUALIF_","_QUALN
  1. I TNAME="O2" D
  1. .S O2=$P($G(^AUPNVMSR(MEAS,0)),U,10)
  1. .S QUALIF=QUALIF_" "_O2
  1. Q QUALIF