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

BHLAFIN.m

Go to the documentation of this file.
  1. BHLAFIN ; cmi/flag/maw - BHL Auto Create Inbound HL7 Fields ;
  1. ;;3.01;BHL IHS Interfaces with GIS;**1**;JUN 01, 2002
  1. ;;
  1. ;
  1. ;this routine will auto create inbound HL7 fields and segments for
  1. ;GIS based upon the listed version of HL7.
  1. ;
  1. MAIN ;-- this is the main routine driver
  1. D SEGARRY
  1. D ASK
  1. Q:'$G(@BHLVER@("MSH"))
  1. D FLDS
  1. Q
  1. ;
  1. X12 ;-- populate for X12
  1. Q
  1. ;
  1. ASK ;-- ask which version of the HL7 standard
  1. S DIR(0)="S^24:2.4;23:2.3"
  1. S DIR("A")="Build Fields for which version of HL7 "
  1. D ^DIR
  1. Q:$D(DIRUT)
  1. S BHLVER=+Y
  1. S BHLVER="VER"_BHLVER
  1. I '$G(@BHLVER@("MSH")) W !,"Version not supported." Q
  1. K DIR
  1. S DIR(0)="F^1:30",DIR("A")="Use which Prefix for Fields "
  1. D ^DIR
  1. Q:$D(DIRUT)
  1. S BHLPRE=Y
  1. S BHLPRE=BHLPRE
  1. Q
  1. ;
  1. FLDS ;-- create the fields here for each segment
  1. S BHLDA=0 F S BHLDA=$O(@BHLVER@(BHLDA)) Q:BHLDA="" D
  1. . S BHLFLDS=$G(@BHLVER@(BHLDA))
  1. . K DD,DO,DIC,Y
  1. . S DIC="^INTHL7S(",DIC(0)="L",X=BHLPRE_" "_BHLDA_" IN"
  1. . S DIC("DR")=".02///"_BHLDA
  1. . D FILE^DICN
  1. . S BHLSEG=+Y
  1. . F BHLI=1:1:BHLFLDS D
  1. .. K DD,DO,Y,DIC
  1. .. S DIC="^INTHL7F(",DIC(0)="L",X=BHLPRE_" "_BHLDA_"-"_BHLI_" IN"
  1. .. S DIC("DR")=".02///STRING;.03///999"
  1. .. D FILE^DICN
  1. .. S BHLFLDE=+Y
  1. .. K DD,DO,Y,DIC
  1. .. D SEGADD
  1. Q
  1. ;
  1. SEGADD ;-- add the field to the segment
  1. S DA(1)=BHLSEG
  1. S DIC="^INTHL7S("_BHLSEG_",1,",DIC(0)="L"
  1. S DIC("P")=$P(^DD(4010,1,0),"^",2)
  1. D ^DIC
  1. S BHLSEGE=+Y
  1. K DIE,DR
  1. S DIE=DIC,DA=+Y,DR=".02///"_BHLI
  1. D ^DIE
  1. K DIC,DIE,DR
  1. Q
  1. ;
  1. SEGARRY ;-- this is the list of segments
  1. S VER24("MSH")=21
  1. S VER24("EVN")=7
  1. S VER24("PID")=38
  1. S VER23("PID")=38
  1. S VER24("PD1")=21
  1. S VER24("NK1")=37
  1. S VER24("PV1")=52
  1. S VER23("PV1")=52
  1. S VER24("DG1")=19
  1. S VER24("PR1")=18
  1. S VER24("GT1")=55
  1. S VER24("IN1")=49
  1. S VER24("IN2")=72
  1. S VER24("ZP2")=33
  1. S VER24("MRG")=7
  1. S VER23("ORC")=25
  1. S VER23("OBR")=47
  1. S VER23("OBX")=19
  1. Q
  1. ;
  1. XARY837 ;-- x12 array
  1. S X1000A("REF")=2
  1. S X1000A("NM1")=9
  1. S X1000A("N2")=1
  1. S X1000A("PER")=8
  1. S X1000B("NM1")=9
  1. S X1000B("N2")=1
  1. S X2000A("HL")=4
  1. S X2000A("PRV")=3
  1. S X2000A("CUR")=2
  1. S X2010AA("NM1")=9
  1. S X2010AA("N2")=1
  1. S X2010AA("N3")=2
  1. S X2010AA("N4")=4
  1. S X2010AA("REF")=2
  1. S X2010AA("REFCC")=2
  1. S X2010AA("PER")=8
  1. S X2010AB("NM1")=9
  1. S X2010AB("N2")=1
  1. S X2010AB("N3")=2
  1. S X2010AB("N4")=4
  1. S X2010AB("REF")=2
  1. S X2000B("HL")=4
  1. S X2000B("SBR")=9
  1. S X2000B("PAT")=9
  1. S X2010BA("NM1")=4
  1. S X2010BA("N2")=1
  1. S X2010BA("N3")=2
  1. S X2010BA("N4")=4
  1. S X2010BA("DMG")=3
  1. S X2010BA("REF")=2
  1. S X2010BA("REFPC")=2
  1. S X2010BB("NM1")=4
  1. S X2010BB("N2")=1
  1. S X2010BB("N3")=2
  1. S X2010BB("N4")=4
  1. S X2010BB("REF")=2
  1. S X2010BC("NM1")=4
  1. S X2010BC("N2")=1
  1. S X2010BC("N3")=2
  1. S X2010BC("N4")=4
  1. S X2010BD("NM1")=4
  1. S X2010BD("N2")=1
  1. S X2010BD("REF")=2
  1. Q
  1. ;