| 1 | SPNHL7 ;WDE/SAN-DIEGO;validate then build the z segment
 | 
|---|
| 2 |  ;;2.0;Spinal Cord Dysfunction;**10,24**;01/02/97
 | 
|---|
| 3 | CHK(SPNFDFN) ;
 | 
|---|
| 4 |  ;       ifn is the record number in SPN(154 it's dinumed to dpt
 | 
|---|
| 5 |  ;--------------------------------------------------------------------
 | 
|---|
| 6 |  ;check registration date
 | 
|---|
| 7 |  S SPNCHK=$$GET1^DIQ(154,SPNFDFN_",",.02)
 | 
|---|
| 8 |  I $G(SPNCHK)="" D ZAP Q
 | 
|---|
| 9 |  ;check registration status
 | 
|---|
| 10 |  S SPNCHK=$$GET1^DIQ(154,SPNFDFN_",",.03)
 | 
|---|
| 11 |  I $G(SPNCHK)="" D ZAP Q
 | 
|---|
| 12 |  ;check VA SCI STATUS
 | 
|---|
| 13 |  ;S SPNCHK=$$GET1^DIQ(154,SPNFDFN_",",2.6)
 | 
|---|
| 14 |  ;I $G(SPNCHK)="" D ZAP Q
 | 
|---|
| 15 |  ;check for etiology
 | 
|---|
| 16 |  ;D GETS^DIQ(154,SPNFDFN_",","4*","","SPNCHK")
 | 
|---|
| 17 |  ;I $D(SPNCHK)=0 D ZAP Q
 | 
|---|
| 18 |  ;the record passed the test and we want it
 | 
|---|
| 19 | CREATE ;this label is also called from the tag auto
 | 
|---|
| 20 |  K SPMSG
 | 
|---|
| 21 |  D INIT
 | 
|---|
| 22 |  I HLDAP="" D ZAP Q  ;cant find the hl7 application
 | 
|---|
| 23 |  I $P($G(^HL(771,HLDAP,0)),U,2)'="a" D ZAP Q  ;test for active/on
 | 
|---|
| 24 |  D EN^SPNHPID(SPNFDFN)
 | 
|---|
| 25 |  D EN^SPNHL1(SPNFDFN)
 | 
|---|
| 26 |  ;at this point we have the HL7 message in the msg arrary!
 | 
|---|
| 27 |  D SEND  ;send will send the message off to the hl7 sftw
 | 
|---|
| 28 | ZAP ;
 | 
|---|
| 29 |  K SPMSG,X,Y,SPTMP,OBXCNT,SPLINE,DATA,CL,SPNOBR
 | 
|---|
| 30 |  K HL,HLA,SPNTMP,HLARYTYP,HLECH,HLFORMAT,HLFS,HLMTIEN,HLSAN,HLN,HLQ,HLRESLT
 | 
|---|
| 31 |  Q
 | 
|---|
| 32 | AUTO ;this tag is used for loading the AUSTIN system from a server request
 | 
|---|
| 33 |  ;this should never be ran from a site unless informed to.
 | 
|---|
| 34 |  S SPNIFN=0 F  S SPNIFN=$O(^SPNL(154,SPNIFN)) Q:(SPNIFN="")!('+SPNIFN)  D
 | 
|---|
| 35 |  . D CHK(SPNIFN) I $D(SPNCHK) D AUTO^SPNHL71
 | 
|---|
| 36 |  . K SPNCHK
 | 
|---|
| 37 |  . Q
 | 
|---|
| 38 |  Q
 | 
|---|
| 39 | INIT ;
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 |  S HLDAP=$O(^HL(771,"B","SPN-HL7-APP",0))
 | 
|---|
| 42 |  Q:HLDAP=""  ;cant find the hl7 application
 | 
|---|
| 43 |  Q:$P($G(^HL(771,HLDAP,0)),U,2)'="a"  ;test for active/on
 | 
|---|
| 44 |  S HL="HL"
 | 
|---|
| 45 |  S PEIN=$O(^ORD(101,"B","SPN-HL7-SERVER",0))
 | 
|---|
| 46 |  D INIT^HLFNC2(PEIN,.HL,0)
 | 
|---|
| 47 |  S HLCOMP=$E(HL("ECH"),1),HLREP=$E(HL("ECH"),2),HLSUB=$E(HL("ECH"),4),HLFS=HL("FS"),HLQ=HL("Q"),HLECH=HL("ECH")
 | 
|---|
| 48 |  Q
 | 
|---|
| 49 |  ;-------------------------------------------------------------------
 | 
|---|
| 50 | SEND ;
 | 
|---|
| 51 |  S HLARYTYP="LM",HLFORMAT=1,HLMTIEN="",HLRESLT=""
 | 
|---|
| 52 |  S P=0 F  S P=$O(SPMSG(P)) Q:P=""  S HLA("HLS",P)=SPMSG(P)
 | 
|---|
| 53 |  D GENERATE^HLMA(PEIN,HLARYTYP,HLFORMAT,.HLRESLT,HLMTIEN,.HLP)
 | 
|---|
| 54 |  Q
 | 
|---|
| 55 | EXIT ;Exit point to clean up all var's
 | 
|---|
| 56 |  K CL,DATA,ETDAT,ETDATE,HL,HLA,HLARYTYP,HLDAP,HLDAP,HLECH,HLFORMAT,HLFS,HLMTIEN,HLN,HLP,HLQ,HLREP,HLRESLT,HLSAN,HLSUB,INJURY,INJURY,OBXCNT,PEIN,SPD,SPDATA,SPDD,SPDT,SPDTYPE,SPLINE,SPMSG,SPNCAUSE,SPNCHK,SPND,SPND1,SPNDD
 | 
|---|
| 57 |  K SPNDOC,SPNDT,SPNET,SPNETIOL,SPNFREQ,SPNLDT,SPNLET,SPNLEXAM,SPNLFAC,SPNLFAM,SPNLSEEN,SPNOBR,SPNRDT,SPNTBL,SPNTMP,SPTMP,SPX
 | 
|---|