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

BPXRMPX.m

Go to the documentation of this file.
  1. BPXRMPX ;IHS/MSC/MGH - APIs for Clinical Reminder indexes. ;03-Jun-2013 12:09;DU
  1. ;;2.0;CLINICAL REMINDERS;**1001**;Feb 04, 2005;Build 21
  1. Q
  1. ;===============================================================
  1. ;===============================================================
  1. VPRC(DA,DATA) ;Return data for a specified V PROCEDURE entry.
  1. N TEMP
  1. S TEMP=^AUPNVPRC(DA,0)
  1. S DATA("VISIT")=$P(TEMP,U,3)
  1. S DATA("PROVIDER NARRATIVE")=$P(TEMP,U,4)
  1. S DATA("DIAGNOSIS")=$P(TEMP,U,5)
  1. S DATA("PRINCIPAL PROCEDURE")=$P(TEMP,U,7)
  1. S DATA("EVENT")=$P($G(^AUPNVPRC(DA,12,0)),U,1)
  1. Q
  1. ;
  1. ;===============================================================
  1. VMEA(MEADATA,MEAIEN,MEAIB) ;Return data for a specified V Measurement entry.
  1. ; Input:
  1. ; MEADATA = Array name passed by reference (required)
  1. ; MEAIEN = IEN for FILE 9000010.01 (required)
  1. ; MEAIB = "I" for Internal value only
  1. ; "B" for Internal and External values (default = B)
  1. ;
  1. ; If MEAIB = "I", then
  1. ; Output = MEADATA(n)=internal value
  1. ;
  1. ; If MEAIB = "B", then
  1. ; Output: MEADATA(n)=internal value^external value
  1. ;
  1. ; where:
  1. ; MEADATA(1)=.01 (DATE/TIME VITALS TAKEN)
  1. ; MEADATA(2)=.02 (PATIENT)
  1. ; MEADATA(3)=.03 (VITAL TYPE)
  1. ; MEADATA(4)=.04 (DATE/TIME VITALS ENTERED)
  1. ; MEADATA(5)=.05 (HOSPITAL LOCATION)
  1. ; MEADATA(6)=.06 (ENTERED BY)
  1. ; MEADATA(7)=1.2 (RATE)
  1. ; MEADATA(8)=1.4 (SUPPLEMENTAL O2)
  1. ; MEADATA(9)=2 (ENTERED IN ERROR)
  1. ; MEADATA(10)=3 (ERROR ENTERED BY)
  1. ; MEADATA(11,n)=4 (REASON ENTERED IN ERROR) <--multiple
  1. ; MEADATA(12,n)=5 (QUALIFIER) <--multiple
  1. ;
  1. ; If the lookup failed then: MEADATA(1)=-1^error text
  1. ;
  1. N MEACNT,MEAIEN1,MEALIST,MEALEN,MEALOOP,MEATEMP,TEMP,TEMP2,TEMP12,VISIT,TEMP5,TP,EM
  1. K MEADATA
  1. I $G(MEAIB)'="I",$G(MEAIB)'="B" S MEAIB="B"
  1. I $G(MEAIEN)="" S MEADATA(1)="-1^Record Number is Null" Q
  1. I MEAIEN=+MEAIEN D
  1. .S TEMP=$G(^AUPNVMSR(MEAIEN,0))
  1. .S TEMP2=$G(^AUPNVMSR(MEAIEN,2))
  1. .S TEMP12=$G(^AUPNVMSR(MEAIEN,12))
  1. .S TEMP5=$G(^AUPNVMSR(MEAIEN,5))
  1. .S VISIT=$P(TEMP,U,3)
  1. I TEMP="" D Q
  1. .S MEADATA(1)="-1^The entry does not exist"
  1. .Q
  1. ;
  1. S MEADATA(1)=$P(TEMP12,U,1) ;Date/time taken
  1. ;Event date/time not entered
  1. I MEADATA(1)="" D
  1. .I +VISIT D
  1. ..S MEADATA(1)=$P($G(^AUPNVSIT(VISIT,0)),U,1)
  1. I MEAIB="B" S MEADATA(1)=$P(MEADATA(1),U,1)_U_$$FMTDATE^BGOUTL(MEADATA(1))
  1. S MEADATA(2)=$P(TEMP,U,2) ;Patient
  1. I MEAIB="B" S MEADATA(2)=$P(MEADATA(2),U,1)_U_$$EXTERNAL^DILFD(9000010.01,.02,"",$P(MEADATA(2),U,1),.EM)
  1. S MEADATA(3)=$P(TEMP,U,1) ;Vital Type
  1. I MEAIB="B" S MEADATA(3)=$P(MEADATA(3),U,1)_U_$$EXTERNAL^DILFD(9000010.01,.01,"",$P(MEADATA(3),U,1),.EM)
  1. S MEADATA(4)=$P(TEMP,U,7) ;Time entered
  1. I MEADATA(4)="" D
  1. .S MEADATA(4)=MEADATA(1)
  1. I MEAIB="B" S MEADATA(4)=MEADATA(4)_U_$$FMTDATE^BGOUTL(MEADATA(4))
  1. S MEADATA(5)=$P($G(^AUPNVSIT(VISIT,0)),U,22)
  1. I '$D(^SC(+MEADATA(5),0)) S MEADATA(5)=0
  1. I MEAIB="B" S MEADATA(5)=$P(MEADATA(5),U,1)_U_$$EXTERNAL^DILFD(9000010,.22,"",MEADATA(5),.EM)
  1. S MEADATA(6)=$P(TEMP,U,8)
  1. I MEADATA(6)="" S MEADATA(6)=$P(TEMP12,U,4)
  1. I MEAIB="B" S MEADATA(6)=$P(MEADATA(6),U,1)_U_$$EXTERNAL^DILFD(9000010.01,.08,"",$P(MEADATA(6),U,1),.EM)
  1. S MEADATA(7)=$P(TEMP,U,4)
  1. I MEAIB="B" S MEADATA(7)=$P(TEMP,U,4)_U_MEADATA(7)
  1. S MEADATA(8)=$P(TEMP,U,10)
  1. I MEAIB="B" S MEADATA(8)=$P(TEMP,U,10)_U_MEADATA(8)
  1. S MEADATA(9)=$P(TEMP2,U,1)
  1. I MEAIB="B" D
  1. .I MEADATA(9)="" S MEADATA(9)="^"
  1. .E S MEADATA(9)=$P(MEADATA(9),U,1)_U_$$EXTERNAL^DILFD(9000010.01,2,"",$P(MEADATA(9),U,1),.EM)
  1. S MEADATA(10)=$P(TEMP2,U,2)
  1. I MEAIB="B" S MEADATA(10)=$P(MEADATA(10),U,1)_U_$$EXTERNAL^DILFD(9000010.01,3,"",$P(MEADATA(10),U,1),.EM)
  1. S MEACNT=0
  1. S MEALIST=0 F S MEALIST=$O(^AUPNVMSR(MEAIEN,2.1,MEALIST)) Q:'+MEALIST D
  1. .S MEACNT=MEACNT+1
  1. .S MEADATA(11,MEACNT)=$G(^AUPNVMSR(MEAIEN,2.1,MEALIST,0))
  1. I MEACNT=0 S MEADATA(11,1)=""
  1. S MEALOOP=0,MEACNT=0
  1. F S MEALOOP=$O(^AUPNVMSR(MEAIEN,5,MEALOOP)) Q:'+MEALOOP D
  1. .S MEACNT=MEACNT+1
  1. .S MEADATA(12,MEACNT)=$G(^AUPNVMSR(MEAIEN,5,MEALOOP,0))
  1. I MEACNT=0 S MEADATA(12,1)=""
  1. ;
  1. ;loop through entered-in-error reason multiple
  1. I MEAIB="B" D
  1. .S (MEACNT,MEAIEN1)=0
  1. .F S MEAIEN1=$O(MEADATA(11,MEAIEN1)) Q:'MEAIEN1 D
  1. ..S TP=$P(MEADATA(11,MEAIEN1),U,1)
  1. ..Q:'TP
  1. ..S MEADATA(11,MEAIEN1)=TP_U_$$EXTERNAL^DILFD(9000010.014,.01,"",TP,.EM)
  1. ..S MEACNT=1
  1. .I MEACNT=0 S MEADATA(11,1)="^"
  1. .;loop through qualifier multiple
  1. .S (MEACNT,MEAIEN1)=0
  1. .F S MEAIEN1=$O(MEADATA(12,MEAIEN1)) Q:'MEAIEN1 D
  1. ..S TP=+$P(MEADATA(12,MEAIEN1),U,1)
  1. ..Q:'TP
  1. ..S MEADATA(12,MEAIEN1)=TP_U_$P($G(^GMRD(120.52,+TP,0)),U,1)
  1. ..S MEACNT=1
  1. .I MEACNT=0 S MEADATA(12,1)="^"
  1. Q
  1. ;