[613] | 1 | VEPERI1A ;DAOU/WCJ - Incoming HL7 messages ;2-MAY-2005
|
---|
| 2 | ;;1.0;VOEB;;Jun 12, 2005
|
---|
| 3 | ;;;VISTA OFFICE/EHR;
|
---|
| 4 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 5 | ;
|
---|
| 6 | ;**Program Description**
|
---|
| 7 | ; loads hl7 format from table
|
---|
| 8 | ;
|
---|
| 9 | Q
|
---|
| 10 | ; Load format from dictionary 19904 into a local array that is easier
|
---|
| 11 | ; to play with. Return a fatal error if table is set up incorrectly.
|
---|
| 12 | ;
|
---|
| 13 | LOADTBL(COTS,FE,HLF) ;
|
---|
| 14 | ;
|
---|
| 15 | N D0,D1,D2,D3,NODE,FILE,FIELD,FIELDS,DATA,DATA2,TMP,SKIPTRAN,SEG,SEQ
|
---|
| 16 | N FLDLOOP
|
---|
| 17 | S FE=0
|
---|
| 18 | ;
|
---|
| 19 | I COTS="" S FE=$$FATALERR^VEPERI6(1,"SETUP","COTS MISSING") Q
|
---|
| 20 | I '$D(^VEPER(19904,"B",COTS)) S FE=$$FATALERR^VEPERI6(1,"SETUP","COTS NOT IN TABLE") Q
|
---|
| 21 | S D0=$O(^VEPER(19904,"B",COTS,""))
|
---|
| 22 | I '+D0 S FE=$$FATALERR^VEPERI6(1,"SETUP","TABLE 19904 INTERGRITY") Q
|
---|
| 23 | ;
|
---|
| 24 | S D1=0 F S D1=$O(^VEPER(19904,D0,1,D1)) Q:'D1!FE D
|
---|
| 25 | . S SEG=$P($G(^VEPER(19904,D0,1,D1,0)),U)
|
---|
| 26 | . I SEG="" S FE=$$FATALERR^VEPERI6(1,"SETUP","TABLE 19904 INTERGRITY") Q
|
---|
| 27 | . S HLF("TBL",SEG)=^VEPER(19904,D0,1,D1,0)
|
---|
| 28 | . S D2=0 F S D2=$O(^VEPER(19904,D0,1,D1,1,D2)) Q:'D2!FE D
|
---|
| 29 | .. F NODE=0,1,2 I $D(^VEPER(19904,D0,1,D1,1,D2,NODE)) D Q:FE
|
---|
| 30 | ... S DATA=^(NODE)
|
---|
| 31 | ... I NODE=0 D Q:FE
|
---|
| 32 | .... S SEQ=$P(DATA,U)
|
---|
| 33 | .... I SEQ="" S FE=$$FATALERR^VEPERI6(1,"SETUP","TABLE 19904 INTERGRITY") Q
|
---|
| 34 | .... S HLF("TBL",SEG,SEQ,NODE)=DATA
|
---|
| 35 | .... S D3=0 F S D3=$O(^VEPER(19904,D0,1,D1,1,D2,3,D3)) Q:'D3 D Q:FE
|
---|
| 36 | ..... S DATA2=$G(^(D3,0)) Q:DATA2=""
|
---|
| 37 | ..... S FILE=$P(DATA2,U,2),FIELDS=$P(DATA2,U,3),SKIPTRAN=$P(DATA2,U,4)
|
---|
| 38 | ..... I FILE]"",FIELDS]"" D Q:FE
|
---|
| 39 | ...... S HLF("TBL",SEG,SEQ,"SETID",D3,FILE,FIELDS)=SKIPTRAN
|
---|
| 40 | ...... F FLDLOOP=1:1:$L(FIELDS,",") D Q:FE
|
---|
| 41 | ....... S FIELD=$P(FIELDS,",",FLDLOOP)
|
---|
| 42 | ....... Q:FIELD=""
|
---|
| 43 | ....... I $D(HLF("MAP",FILE,FIELD)) S FE=$$FATALERR^VEPERI6(1,"SETUP","TABLE 19904 INTERGRITY, DUPLICATE FIELD MAPPING") Q
|
---|
| 44 | ....... S HLF("MAP",FILE,FIELD)=SEG_U_SEQ_U_D3_U_$E(SKIPTRAN,FLDLOOP)
|
---|
| 45 | ....... S TMP=$G(^DD(FILE,FIELD,0))
|
---|
| 46 | ....... I $P(TMP,U,2)["P" D
|
---|
| 47 | ........ S HLF("MAP",FILE,FIELD)=HLF("MAP",FILE,FIELD)_U_+$P($P(TMP,U,2),"P",2)_U_$S($P(TMP,U,2)["'":0,1:1)
|
---|
| 48 | ... I SEQ="" S FE=$$FATALERR^VEPERI6(1,"SETUP","TABLE 19904 INTERGRITY") Q
|
---|
| 49 | ... I NODE'=0 S HLF("TBL",SEG,SEQ,NODE)=$TR(DATA,"~","^")
|
---|
| 50 | Q
|
---|