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

VAFHLZAV.m

Go to the documentation of this file.
  1. VAFHLZAV ;ALB/KUM - Create HL7 ZAV segment ;11/26/17 3:34PM
  1. ;;5.3;Registration;**941**;Aug 13, 1993;Build 73
  1. ;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;
  1. ; This generic extrinsic function is designed to return the
  1. ; HL7 ZAV segment(s).
  1. ;
  1. EN(DFN,VAFSTR,VAFHLQ,VAFHLFS,IVMZAV,IVMZAVA) ; --
  1. ; Entry point for creating HL7 ZAV segment.
  1. ;
  1. ;Variables Required to use this routine:
  1. ; HL - array that contains the necessary HL variables (init^hlsub)
  1. ;
  1. ; Input(s):
  1. ; DFN - internal entry number of Patient (#2) file
  1. ; VAFSTR - (optional) string of fields requested, separated by
  1. ; commas. If not passed, return all data fields.
  1. ; VAFHLQ - (optional) HL7 null variable.
  1. ; VAFHLFS - (optional) HL7 field separator.
  1. ;
  1. ; Output(s):
  1. ; IVMZAV() - array containing the HL7 ZAV segment(s)
  1. ;
  1. N VAFY,VAFHLSC,SUB,SUB1,SID,VAFHLC
  1. ;
  1. I VAFHLFS="" S VAFHLFS="^"
  1. S:($L(VAFHLFS)'=1) VAFHLFS="^"
  1. S VAFHLC=$G(VAFHLC) I VAFHLC="" S VAFHLC="~|\&"
  1. S:($L(VAFHLC)'=4) VAFHLC="~|\&"
  1. S:('$D(VAFHLQ)) VAFHLQ=$C(34,34)
  1. S VAFHLSC=$E(VAFHLC,1)
  1. ;
  1. ; if DFN not passed, exit
  1. I '$G(DFN) S VAFY=1 G ENQ
  1. ;
  1. ; if VAFSTR not passed, return all data fields
  1. ; Address Types - Permanent (P), Residential (R), Temporary (C), Confidential (CNF)
  1. I $G(VAFSTR)']"" S VAFSTR="1,2,3"
  1. ;
  1. ; initialize output string and requested data fields
  1. S $P(VAFY,VAFHLFS,2)="",VAFSTR=","_VAFSTR_","
  1. ;
  1. ; get Address Types from Patient (#2) file
  1. ; .1159 RESIDENTIAL ADDR CASS IND (S), [.115;19]
  1. ; .12115 TEMPORARY ADDR CASS IND (S), [.121;15]
  1. ; .123 STREET ADDRESS CASS IND (S), [.11;18]
  1. ; .14117 CONFIDENTIAL ADDR CASS IND (S), [.141;17]
  1. K ADT
  1. S SUB1=""
  1. F S SUB1=$O(IVMZAVA(SUB1)) Q:SUB1="" D
  1. .I SUB1="R" S ADT("R")=$$GET1^DIQ(2,DFN,".1159","I")
  1. .I SUB1="C" S ADT("C")=$$GET1^DIQ(2,DFN,".12115","I")
  1. .I SUB1="P" S ADT("P")=$$GET1^DIQ(2,DFN,".123","I")
  1. .I SUB1="CNF" S ADT("CNF")=$$GET1^DIQ(2,DFN,".14117","I")
  1. I $D(ADT) D
  1. .S SID=0
  1. .S SUB=""
  1. .F S SUB=$O(ADT(SUB)) Q:SUB="" D
  1. ..I $D(ADT(SUB)) D
  1. ...I VAFSTR[",1," S SID=SID+1,$P(VAFY,VAFHLFS)=SID ;Set ID
  1. ...I VAFSTR[",2," S $P(VAFY,VAFHLFS,2)=SUB ; Address Type
  1. ...I ADT(SUB)="" S ADT(SUB)="NC"
  1. ...I VAFSTR[",3," S $P(VAFY,VAFHLFS,3)=ADT(SUB) ;Address Validation Indicator
  1. ...S IVMZAV("HL7",SID)="ZAV"_VAFHLFS_VAFY
  1. ;
  1. ENQ Q