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

VPSMR52.m

Go to the documentation of this file.
  1. VPSMR52 ;WOIFO/BT - Get the last MRAR data for a patient (Allergy Level) ;01/29/15 15:30
  1. ;;1.0;VA POINT OF SERVICE (KIOSKS);**3**;Jan 29, 2015;Build 64
  1. ;;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;
  1. ;
  1. ALLERGY(VPSMRAR,DFN,LASTMRAR) ; -- retrieve Allergy level fields and store them in VPSMRAR
  1. ; INPUT
  1. ; DFN : Patient IEN
  1. ; LASTMRAR : The last MRAR Transaction IEN for the patient
  1. ; OUTPUT
  1. ; VPSMRAR: local array contains all field names/values for the last mrar
  1. ;
  1. N REC,INVAL,EXVAL,ALRNO,FLD,SUBS
  1. N FIL S FIL=853.52
  1. N ALRIEN S ALRIEN=0
  1. ;
  1. F S ALRIEN=$O(^VPS(853.5,DFN,"MRAR",LASTMRAR,"ALLERGY",ALRIEN)) Q:'ALRIEN D
  1. . S SUBS=ALRIEN_","_LASTMRAR_","_DFN_","
  1. . K REC D GETS^DIQ(FIL,SUBS,"*","IE","REC")
  1. . S ALRNO=REC(FIL,SUBS,.01,"I")
  1. . S FLD=""
  1. . F S FLD=$O(REC(FIL,SUBS,FLD)) Q:'FLD D
  1. . . K ATTR D FIELD^DID(FIL,FLD,"","LABEL;TYPE","ATTR")
  1. . . S INVAL=REC(FIL,SUBS,FLD,"I")
  1. . . S EXVAL=REC(FIL,SUBS,FLD,"E")
  1. . . I FIL=853.52,FLD=.02 S EXVAL=$$GET1^DIQ(120.8,INVAL_",",.02,"E")
  1. . . I ATTR("TYPE")="WORD-PROCESSING" S EXVAL=$$WP^VPSMRAR9(.REC,FIL,SUBS,FLD),INVAL=""
  1. . . D ADD^VPSMRAR9(.VPSMRAR,ATTR("LABEL"),","_ALRNO,INVAL,EXVAL)
  1. . ;
  1. . D ALLIND(.VPSMRAR,VPSDFN,LASTMRAR,ALRIEN,ALRNO)
  1. . D ALREACT(.VPSMRAR,VPSDFN,LASTMRAR,ALRIEN,ALRNO)
  1. ;
  1. QUIT
  1. ;
  1. ALLIND(VPSMRAR,DFN,LASTMRAR,ALRIEN,ALRNO) ; -- retrieve Allergy Indicator level fields and store them in VPSMRAR
  1. ; INPUT
  1. ; DFN : Patient IEN
  1. ; LASTMRAR : The last MRAR Transaction IEN for the patient
  1. ; ALRIEN : Allergy IEN
  1. ; ALRNO : Allergy Entry #
  1. ; OUTPUT
  1. ; VPSMRAR : local array contains all field names/values for the last mrar
  1. ;
  1. N REC,INVAL,EXVAL,ATTR,SUBS
  1. N FIL S FIL("ACHG")=853.525,FIL("ACNFR")=853.526,FIL("ADISCR")=853.527
  1. N FLD S FLD=".01"
  1. ;
  1. F IND="ACHG","ACNFR","ADISCR" D
  1. . K ATTR D FIELD^DID(FIL(IND),FLD,"","LABEL;TYPE","ATTR")
  1. . N INDIEN S INDIEN=0
  1. . F S INDIEN=$O(^VPS(853.5,DFN,"MRAR",LASTMRAR,"ALLERGY",ALRIEN,IND,INDIEN)) Q:'INDIEN D
  1. . . S SUBS=INDIEN_","_ALRIEN_","_LASTMRAR_","_DFN_","
  1. . . K REC D GETS^DIQ(FIL(IND),SUBS,"*","IE","REC")
  1. . . S INVAL=REC(FIL(IND),SUBS,FLD,"I")
  1. . . S EXVAL=REC(FIL(IND),SUBS,FLD,"E")
  1. . . D ADD^VPSMRAR9(.VPSMRAR,ATTR("LABEL"),","_ALRNO_","_INVAL,INVAL,EXVAL)
  1. ;
  1. QUIT
  1. ;
  1. ALREACT(VPSMRAR,VPSDFN,LASTMRAR,ALRIEN,ALRNO) ; -- retrieve Allergy Reaction level fields and store them in VPSMRAR
  1. ; INPUT
  1. ; DFN : Patient IEN
  1. ; LASTMRAR : The last MRAR Transaction IEN for the patient
  1. ; ALRIEN : Allergy IEN
  1. ; OUTPUT
  1. ; VPSMRAR : local array contains all field names/values for the last mrar
  1. ;
  1. N REC,INVAL,EXVAL,ATTR,FLD,SUBS,REACTNO
  1. N FIL S FIL=853.57
  1. N REACTIEN S REACTIEN=0
  1. ;
  1. F S REACTIEN=$O(^VPS(853.5,DFN,"MRAR",LASTMRAR,"ALLERGY",ALRIEN,"REACTIONS",REACTIEN)) Q:'REACTIEN D
  1. . S SUBS=REACTIEN_","_ALRIEN_","_LASTMRAR_","_DFN_","
  1. . K REC D GETS^DIQ(FIL,SUBS,"*","IE","REC")
  1. . S REACTNO=REC(FIL,SUBS,".01","I")
  1. . S FLD=0
  1. . F S FLD=$O(REC(FIL,SUBS,FLD)) Q:'FLD D
  1. . . K ATTR D FIELD^DID(FIL,FLD,"","LABEL;TYPE","ATTR")
  1. . . S INVAL=REC(FIL,SUBS,FLD,"I")
  1. . . S EXVAL=REC(FIL,SUBS,FLD,"E")
  1. . . I ATTR("TYPE")="WORD-PROCESSING" S EXVAL=$$WP^VPSMRAR9(.REC,FIL,SUBS,FLD),INVAL=""
  1. . . D ADD^VPSMRAR9(.VPSMRAR,ATTR("LABEL"),","_ALRNO_","_REACTNO,INVAL,EXVAL)
  1. ;
  1. QUIT
  1. ;
  1. ADDALLER(VPSMRAR,DFN,LASTMRAR) ; -- retrieve Additional Allergy level fields and store them in VPSMRAR
  1. ; INPUT
  1. ; DFN : Patient IEN
  1. ; LASTMRAR : The last MRAR Transaction IEN for the patient
  1. ; OUTPUT
  1. ; VPSMRAR: local array contains all field names/values for the last mrar
  1. ;
  1. N REC,INVAL,EXVAL,ALRNO,FLD,SUBS
  1. N FIL S FIL=853.53
  1. N ALRIEN S ALRIEN=0
  1. ;
  1. F S ALRIEN=$O(^VPS(853.5,DFN,"MRAR",LASTMRAR,"ALLERGYADD",ALRIEN)) Q:'ALRIEN D
  1. . S SUBS=ALRIEN_","_LASTMRAR_","_DFN_","
  1. . K REC D GETS^DIQ(FIL,SUBS,"*","IE","REC")
  1. . S ALRNO=REC(FIL,SUBS,.01,"I")
  1. . S FLD=""
  1. . F S FLD=$O(REC(FIL,SUBS,FLD)) Q:'FLD D
  1. . . K ATTR D FIELD^DID(FIL,FLD,"","LABEL;TYPE","ATTR")
  1. . . S INVAL=REC(FIL,SUBS,FLD,"I")
  1. . . S EXVAL=REC(FIL,SUBS,FLD,"E")
  1. . . I ATTR("TYPE")="WORD-PROCESSING" S EXVAL=$$WP^VPSMRAR9(.REC,FIL,SUBS,FLD),INVAL=""
  1. . . D ADD^VPSMRAR9(.VPSMRAR,ATTR("LABEL"),","_ALRNO,INVAL,EXVAL)
  1. ;
  1. QUIT