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

VAFHLZSC.m

Go to the documentation of this file.
  1. VAFHLZSC ;ALB/ESD - Create generic HL7 ZSC Segment ; 06-MAY-1996
  1. ;;5.3;Registration;**94**;Aug 13, 1993
  1. ;
  1. ; This function will create VA-specific ZSC segment(s) for a
  1. ; given outpatient encounter. The ZSC segment is designed to transfer
  1. ; service indicator (stop code) information pertaining to a patient
  1. ; visit.
  1. ;
  1. EN(VAFENC,VAFSTR,VAFHLQ,VAFHLFS,VAFARRY) ; Entry point to return the HL7 ZSC segment
  1. ;
  1. ; Input: VAFENC - IEN of the Outpatient Encounter (#409.68) file.
  1. ; VAFSTR - String of fields requested separated by commas.
  1. ; VAFHLQ - Optional HL7 null variable. If not there, use
  1. ; default HL7 variable.
  1. ; VAFHLFS - Optional HL7 field separator. If not there, use
  1. ; default HL7 variable.
  1. ; VAFARRY - Optional user-supplied array name which will hold HL7 ZSC segments
  1. ;
  1. ; Output: Array of HL7 ZSC segments
  1. ;
  1. ;
  1. N I,VAFIDX,VAFNODE,VAFSCODE,VAFY
  1. S VAFARRY=$G(VAFARRY)
  1. ;
  1. ; - If VAFARRY not defined, use ^TMP("VAFHL",$J,"STOPCODE")
  1. S:(VAFARRY="") VAFARRY="^TMP(""VAFHL"",$J,""STOPCODE"")"
  1. ;
  1. ; - If VAFHLQ or VAFHLFS aren't passed in, use default HL7 variables
  1. S VAFHLQ=$S($D(VAFHLQ):VAFHLQ,1:$G(HLQ)),VAFHLFS=$S($D(VAFHLFS):VAFHLFS,1:$G(HLFS))
  1. I '$G(VAFENC)!($G(VAFSTR)']"") S @VAFARRY@(1,0)="ZSC"_VAFHLFS_1 G ENQ
  1. S VAFIDX=0,VAFSTR=","_VAFSTR_","
  1. ;
  1. ; - Get stop codes for encounter
  1. D SCODE^SCDXUTL0(VAFENC,"VAFSCODE")
  1. ;
  1. ; - Set stop code array to 0 if no stop codes to loop thru once
  1. I '$G(VAFSCODE(0)) S VAFSCODE(1)=0
  1. ;
  1. ALL ; - All stop codes for encounter
  1. F I=0:0 S I=$O(VAFSCODE(I)) Q:I="" D
  1. .;
  1. .S VAFNODE=$G(^DIC(40.7,+VAFSCODE(I),0))
  1. .S:($P(VAFNODE,"^",1)="") $P(VAFNODE,"^",1)=VAFHLQ
  1. .S:($P(VAFNODE,"^",2)="") $P(VAFNODE,"^",2)=VAFHLQ
  1. .;
  1. .; - build array of HL7 (ZSC) segments
  1. .D BUILD
  1. ;
  1. ENQ Q
  1. ;
  1. ;
  1. BUILD ; - Build array of HL7 (ZSC) segments
  1. S $P(VAFY,VAFHLFS,3)="",VAFIDX=VAFIDX+1
  1. ;
  1. ; - Sequential number (required field)
  1. S $P(VAFY,VAFHLFS,1)=VAFIDX
  1. ;
  1. ; - Build HL7 (ZSC) segment fields
  1. I VAFSTR[",2," S $P(VAFY,VAFHLFS,2)=$P(VAFNODE,"^",2) ; Stop Code
  1. I VAFSTR[",3," S $P(VAFY,VAFHLFS,3)=$P(VAFNODE,"^",1) ; Name
  1. ;
  1. ; - Set all stop codes into array
  1. S @VAFARRY@(VAFIDX,0)="ZSC"_VAFHLFS_$G(VAFY)
  1. Q