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

HLOSRVR2.m

Go to the documentation of this file.
  1. HLOSRVR2 ;ALB/CJM-HL7 - HLO Server ;02/29/2012
  1. ;;1.6;HEALTH LEVEL SEVEN;**131,137,138,146,158**;Oct 13, 1995;Build 14
  1. ;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;
  1. NEWMSG(HLCSTATE,HLMSTATE,HDR) ;
  1. ;initialize the HLMSTATE array after reading the header
  1. ;Inputs:
  1. ; HLCSTATE (pass by reference)
  1. ; HDR (pass by reference) parsed header
  1. ;Output:
  1. ; HLMSTATE (pass by reference)
  1. ;
  1. K HLMSTATE
  1. S HLMSTATE("IEN")=""
  1. S HLMSTATE("BODY")=""
  1. S HLMSTATE("DIRECTION")="IN"
  1. S HLMSTATE("CURRENT SEGMENT")=0 ;no segments in cache
  1. S HLMSTATE("UNSTORED LINES")=1 ;just the header in cache so far
  1. S HLMSTATE("LINE COUNT")=0 ;no lines within message stored to disk
  1. I HDR("SEGMENT TYPE")="BHS" D
  1. .S HLMSTATE("BATCH")=1
  1. .S HLMSTATE("ID")=HDR("BATCH CONTROL ID")
  1. .S HLMSTATE("BATCH","CURRENT MESSAGE")=0 ;no messages in batch
  1. .S HLMSTATE("UNSTORED MSH")=0
  1. E D
  1. .S HLMSTATE("BATCH")=0
  1. .S HLMSTATE("ID")=HDR("MESSAGE CONTROL ID")
  1. M HLMSTATE("HDR")=HDR
  1. M HLMSTATE("SYSTEM")=HLCSTATE("SYSTEM")
  1. S HLMSTATE("STATUS")=""
  1. S HLMSTATE("STATUS","QUEUE")=""
  1. S HLMSTATE("STATUS","ACTION")=""
  1. S HLMSTATE("STATUS","LINK NAME")=HLCSTATE("LINK","NAME")
  1. S HLMSTATE("STATUS","PORT")=$P(HDR("SENDING FACILITY",2),":",2)
  1. ;
  1. ;if this is a batch, and it references another batch, assume it is a batch of app acks
  1. ;** START 138 CJM
  1. ;I HLMSTATE("BATCH"),HLMSTATE("ID")]"" D
  1. I HLMSTATE("BATCH"),HLMSTATE("HDR","REFERENCE BATCH CONTROL ID")]"" D
  1. .N IEN
  1. .;S HLMSTATE("ACK TO")=HLMSTATE("ID")
  1. .S HLMSTATE("ACK TO")=HLMSTATE("HDR","REFERENCE BATCH CONTROL ID")
  1. .S HLMSTATE("ACK TO","STATUS")="SU"
  1. .;S IEN=$O(^HLB("B",HLMSTATE("ID"),0))
  1. .S IEN=$O(^HLB("B",HLMSTATE("HDR","REFERENCE BATCH CONTROL ID"),0))
  1. .;** END 138 CJM
  1. .I IEN S HLMSTATE("ACK TO IEN")=IEN_"^"
  1. E S HLMSTATE("ACK TO")=""
  1. I 'HLMSTATE("BATCH"),HDR("ACCEPT ACK TYPE")="",HDR("APP ACK TYPE")="" D
  1. .S HLMSTATE("ORIGINAL MODE")=1
  1. E D
  1. .S HLMSTATE("ORIGINAL MODE")=0
  1. N I F I=1,3 S HLMSTATE("MSA",I)=""
  1. S HLMSTATE("MSA",2)=HLMSTATE("ID")
  1. Q