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

BTIUVAMI.m

Go to the documentation of this file.
  1. BTIUVAMI ; IHS/MSC/JS - AMI TOOL OBJECT ;28-Mar-2014 17:04;DU
  1. ;;1.0;TEXT INTEGRATION UTILITIES;**1012,1013**;MAR 20, 2013;Build 33
  1. ;
  1. Q
  1. ;
  1. VAMI(DFN,TARGET,VIEN) ; EHR p12
  1. ;
  1. ; -- check environment variables --
  1. I $T(GETVAR^CIAVMEVT)="" S @TARGET@(1,0)="Invalid context variables" Q "~@"_$NA(@TARGET)
  1. I $G(TARGET)="" Q " "
  1. K @TARGET
  1. ; -- get patient visit --
  1. S VIEN=$G(VIEN)
  1. I VIEN'="" G GETAMI
  1. NEW VST
  1. S VST=$$GETVAR^CIAVMEVT("ENCOUNTER.ID.ALTERNATEVISITID",,"CONTEXT.ENCOUNTER")
  1. I VST="" S @TARGET@(1,0)="Invalid visit" Q "~@"_$NA(@TARGET)
  1. S VIEN=+$$VSTR2VIS^BEHOENCX(DFN,VST) I VST<1 S @TARGET@(1,0)="Invalid context variables" Q "~@"_$NA(@TARGET)
  1. I $G(VIEN)="" S @TARGET@(1,0)="Invalid visit" Q "~@"_$NA(@TARGET)
  1. ;
  1. GETAMI ; -- check/get V AMI file #9000010.62 visit entry --
  1. NEW AMIEN,CNT,FNUM,VAMIARR,VAMIERR
  1. S AMIEN=""
  1. S CNT=0
  1. F S AMIEN=$O(^AUPNVAMI("AD",VIEN,AMIEN)) Q:AMIEN="" D
  1. .D GETS
  1. I 'CNT S @TARGET@(1,0)="No AMI data found for this visit"
  1. Q "~@"_$NA(@TARGET)
  1. ;
  1. GETS ; -- check/retrieve file entry(s) --
  1. I AMIEN="" S @TARGET@(1,0)="No V AMI entry for patient visit" Q "~@"_$NA(@TARGET)
  1. I '$D(^AUPNVAMI(AMIEN)) S @TARGET@(1,0)="No V AMI entry for patient visit" Q "~@"_$NA(@TARGET)
  1. I $P($G(^AUPNVAMI(AMIEN,5)),U,1) Q ; EIE
  1. S FNUM=$$FNUM
  1. I FNUM=0 S @TARGET@(1,0)="Server error: "_$G(FILERR("DIERR",1))_U_$G(FILERR("DIERR",1,"TEXT",1)) K FILERR Q "~@"_$NA(@TARGET)
  1. D GETS^DIQ(FNUM,AMIEN_",","**","IE","VAMIARR","VAMIERR") ; retrieve file entry data
  1. I $D(VAMIERR) D Q "~@"_$NA(@TARGET)
  1. .S @TARGET@(1,0)="Server error occurred: "_$G(VAMIERR("DIERR",1))_U_$G(VAMIERR("DIERR",1,"TEXT",1))
  1. D PRINT(AMIEN)
  1. I CNT=0 S @TARGET@(1,0)="No V AMI visit record"
  1. Q
  1. ;
  1. ; -- print/display the AMI TOOL entry data --
  1. PRINT(AMIEN) ;
  1. NEW SPACE,ARRIVED,PATNAME,ONSETDT,PROVNAME,ONSETBY,ARRCOM,FIBCOM,EKGCOM,FINDCOM
  1. N FIBBY,SYMCOM,EKGDONE,STRPAD,Z
  1. S $P(SPACE," ",1)=""
  1. S $P(STRPAD," ",3)=""
  1. S ARRIVED=$G(VAMIARR(FNUM,AMIEN_",",".01","E")) ;.01 ARRIVAL DATE/TIME (RD), [0;1]
  1. S PATNAME=$G(VAMIARR(FNUM,AMIEN_",",".02","E")) ;.02 PATIENT NAME (RP9000001'I), [0;2]
  1. S ONSETDT=$G(VAMIARR(FNUM,AMIEN_",",".04","E")) ;.04 ONSET SYMPTOMS (D), [0;4]
  1. S ONSETBY=$G(VAMIARR(FNUM,AMIEN_",",".06","E")) ;.06 ONSET SYMPTOMS BY (P200'), [0;6]
  1. S EKGDONE=$G(VAMIARR(FNUM,AMIEN_",",".07","E")) ;.07 EKG DONE (DATE/TIME), [0;7]
  1. S PROVNAME=$G(VAMIARR(FNUM,AMIEN_",","1202","E")) ;1202 ORDERING PROVIDER (*P200'X), [12;2]
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="--- Chest Pain ---"
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=SPACE
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="Arrived at: "_$G(ARRIVED)
  1. ;SYMPTOMS #9000010.622 - ONSET SYMPTOMS TEXT SUB-FILE FIELD #2.01
  1. NEW NODE,STRING,SSY
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="Onset of symptoms: "_$G(ONSETDT)
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="Onset of symptoms entered by: "_$G(ONSETBY)
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=SPACE
  1. S CNT=CNT+1
  1. I $D(^AUPNVAMI(AMIEN,15))>1 S @TARGET@(CNT,0)="Symptoms:"
  1. S STRING="",NODE=0
  1. S NODE=0 F S NODE=$O(^AUPNVAMI(AMIEN,15,NODE)) Q:'+NODE D
  1. .S SSY=NODE_","_AMIEN
  1. .S STRING=$$GET1^DIQ(9000010.6215,SSY,.019)
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)=STRPAD_STRING
  1. .Q
  1. ;I $D(VAMIARR(FNUM,AMIEN_",","2")) D ; 2 ONSET SYMPTOMS TEXT
  1. I $D(^AUPNVAMI(AMIEN,2))>1 D
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)=SPACE
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)="Onset Symptoms Comments:"
  1. .N NUM S NUM=""
  1. .F S NUM=$O(VAMIARR(FNUM,AMIEN_",","2",NUM)) Q:NUM="" D
  1. ..Q:NUM'?1N.N
  1. ..S SYMCOM=$G(VAMIARR(FNUM,AMIEN_",","2",NUM))
  1. ..I $G(SYMCOM)]"" D
  1. ...S CNT=CNT+1
  1. ...S @TARGET@(CNT,0)=SYMCOM
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)=SPACE
  1. I $G(EKGDONE)]"" D
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)="EKG done (Date/Time): "_$G(EKGDONE)
  1. ;
  1. ;EKG #9000010.6214 - EKG FINDINGS SUB-FILE FIELD #1400
  1. NEW NODE,STRING,NARR,EIEN
  1. S STRING="",NODE=""
  1. S NODE=0 F S NODE=$O(^AUPNVAMI(AMIEN,14,NODE)) Q:'+NODE D
  1. .S EIEN=NODE_","_AMIEN
  1. .S STRING=$$GET1^DIQ(9000010.6214,EIEN,.07) ; .07 EVENT DATE/TIME (D), [0;7]
  1. .I $G(STRING)]"" D
  1. ..S CNT=CNT+1
  1. ..S @TARGET@(CNT,0)="EKG Findings Date/Time: "_$G(STRING)
  1. .S STRING=$$GET1^DIQ(9000010.6214,EIEN,.02) ; .01 EKG FINDINGS CONCEPT ID (F), [0;1]
  1. .S NARR=$$GET1^DIQ(9000010.6214,EIEN,.03)
  1. .I NARR="" S NARR=$P($$DESC^BSTSAPI(STRING_"^^1"),U,2)
  1. .I NARR'="" S NARR=NARR_" ("_STRING_")" D
  1. ..S CNT=CNT+1
  1. ..S @TARGET@(CNT,0)="Interpretation:"
  1. ..S CNT=CNT+1
  1. ..S @TARGET@(CNT,0)=$G(NARR)
  1. .S STRING=$$GET1^DIQ(9000010.6214,EIEN,.06) ; .06 INTERPRETED BY (P200'), [0;6]
  1. .I $G(STRING)]"" D
  1. ..S CNT=CNT+1
  1. ..S @TARGET@(CNT,0)="Interpreted by: "_$G(STRING)
  1. .S Z=0 F S Z=$O(^AUPNVAMI(AMIEN,14,NODE,1,Z)) Q:'+Z D
  1. ..S STRING=$G(^AUPNVAMI(AMIEN,14,NODE,1,Z,0))
  1. ..S CNT=CNT+1
  1. ..S @TARGET@(CNT,0)=STRING
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)=SPACE
  1. .Q
  1. I $D(VAMIARR(FNUM,AMIEN_",","3")) I $G(VAMIARR(FNUM,AMIEN_",","3",1))]"" D ; 3 EKG COMMENT
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)="EKG Comments:"
  1. .N NUM S NUM=""
  1. .F S NUM=$O(VAMIARR(FNUM,AMIEN_",","3",NUM)) Q:NUM="" D
  1. ..Q:NUM'?1N.N
  1. ..S EKGCOM=$G(VAMIARR(FNUM,AMIEN_",","3",NUM))
  1. ..I $G(EKGCOM)]"" D
  1. ...S CNT=CNT+1
  1. ...S @TARGET@(CNT,0)=EKGCOM
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)=SPACE
  1. ;PROTOCOLS #9000010.6213 - PROTOCOL STANDING ORDERS SUB-FILE FIELD #1300
  1. I $D(VAMIARR(9000010.6213)) D
  1. .NEW STRING,NODE,PROTO,PROTODT,PROTOBY,PROCOM
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)="Standing Orders/Protocols Initiated:"
  1. .S STRING="",NODE=""
  1. .F S NODE=$O(VAMIARR(9000010.6213,NODE)) Q:NODE="" D
  1. ..S CNT=CNT+1
  1. ..S PROTO=$G(VAMIARR(9000010.6213,NODE,".01","E")) ; .01 PROTOCOL STANDING ORDERS (F), [0;1]
  1. ..S PROTODT=$G(VAMIARR(9000010.6213,NODE,".02","E")) ; .02 EVENT DATE/TIME (D), [0;2]
  1. ..S PROTOBY=$G(VAMIARR(9000010.6213,NODE,".04","E")) ; .04 ENTERED BY (P200'), [0;4]
  1. ..S CNT=CNT+1
  1. ..S @TARGET@(CNT,0)=$G(PROTO)_" "_$G(PROTODT)_" by "_$G(PROTOBY)
  1. ..I $D(VAMIARR(9000010.6213,NODE,1)) D ; 1 STANDING ORDER COMMENT
  1. ...S CNT=CNT+1
  1. ...S @TARGET@(CNT,0)="Standing Order Comments:"
  1. ...N NUM S NUM=0
  1. ...F S NUM=$O(VAMIARR(9000010.6213,NODE,NUM)) Q:NUM="" D
  1. ....Q:NUM'?1N.N
  1. ....N PNUM S PNUM=0
  1. ....F S PNUM=$O(VAMIARR(9000010.6213,NODE,NUM,PNUM)) Q:PNUM="" D
  1. .....Q:PNUM'?1N.N
  1. .....S PROCOM=$G(VAMIARR(9000010.6213,NODE,NUM,PNUM)) Q:$G(PROCOM)="" D
  1. ......S CNT=CNT+1
  1. ......S @TARGET@(CNT,0)=PROCOM
  1. ;FIBRINOLYTIC THERAPY INITIATED FIELD .11
  1. NEW FIBSTDT,FIBNOT,FIBREA,FIBCOM,FIBTXT
  1. S FIBSTDT=$G(VAMIARR(FNUM,AMIEN_",",".11","E")) ; .11 FIBRINOLYTIC THERAPY INITIATED (D), [0;11]
  1. S FIBBY=$G(VAMIARR(FNUM,AMIEN_",",".13","E"))
  1. I FIBSTDT="" D
  1. .S FIBNOT=$G(VAMIARR(FNUM,AMIEN_",",".14","E")) ; .14 DID NOT DO
  1. .I FIBNOT'="" D
  1. ..S CNT=CNT+1
  1. ..S @TARGET@(CNT,0)=SPACE
  1. ..S CNT=CNT+1
  1. ..S @TARGET@(CNT,0)="Fibrinolytic therapy Not chosen at "_FIBNOT
  1. ..S FIBREA=$G(VAMIARR(FNUM,AMIEN_",",".17","I")) ; .17 NO FIB REASON (REF REASON FILE IEN STORED 12.6.13)
  1. ..I $L(FIBREA)<4 S FIBTXT=FIBREA
  1. ..E S FIBTXT=$P($$CONC^BSTSAPI(FIBREA),U,4)
  1. ..I FIBTXT]"" D
  1. ...S CNT=CNT+1
  1. ...S @TARGET@(CNT,0)="Reason: "_FIBTXT
  1. E D
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)=SPACE
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)="Fibrinolytic therapy started at "_FIBSTDT
  1. I FIBBY'="" D
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)="Fibrinolytic documented by "_FIBBY
  1. S FIBCOM=$G(VAMIARR(FNUM,AMIEN_",","4","E"))
  1. I $G(FIBCOM)]"" D
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)=SPACE
  1. I $D(VAMIARR(FNUM,AMIEN_",","4")) I $G(VAMIARR(FNUM,AMIEN_",","4",1))]"" D ; 4 FIBRINOLYTIC THERAPY COMMENT
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)="Fibrinolytic Therapy Comments:"
  1. .N NUM S NUM=""
  1. .F S NUM=$O(VAMIARR(FNUM,AMIEN_",","4",NUM)) Q:NUM="" D
  1. ..Q:NUM'?1N.N
  1. ..S FIBCOM=$G(VAMIARR(FNUM,AMIEN_",","4",NUM))
  1. ..I $G(FIBCOM)]"" D
  1. ...S CNT=CNT+1
  1. ...S @TARGET@(CNT,0)=FIBCOM
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)=SPACE
  1. Q
  1. ;
  1. ; -- V AMI file number --
  1. FNUM() ; returns 0/invalid file ref number, 9000010.62/valid file ref number
  1. NEW FILEN,ATTRIB,TAROOT,MSGROOT,FILEINFO
  1. S FILEN=9000010.62,ATTRIB="NAME;GLOBAL NAME",TAROOT="FILEINFO",MSGROOT="FILERR"
  1. K FILERR D FILE^DID(FILEN,,ATTRIB,TAROOT,MSGROOT)
  1. I $D(FILERR) Q 0
  1. Q 9000010.62