1 | GMRCITST ;SLC/JFR - test IFC setup ; 11/30/01 10:30
|
---|
2 | ;;3.0;CONSULT/REQUEST TRACKING;**22**;DEC 27, 1997
|
---|
3 | EN ; start here
|
---|
4 | ;Prompt for choice of consult service or procedure
|
---|
5 | ;route to the ROUTING FACILITY and see if it's a GO
|
---|
6 | N DIR,X,Y,DIROUT,DIRUT,DTOUT
|
---|
7 | S DIR(0)="SO^P:procedure;C:consult service"
|
---|
8 | S DIR("A")="Would you like to test a procedure or consult service"
|
---|
9 | D ^DIR
|
---|
10 | I $D(DIRUT) Q
|
---|
11 | W !!
|
---|
12 | D RUN(Y)
|
---|
13 | W !!
|
---|
14 | K DIR,X,Y
|
---|
15 | S DIR(0)="YA",DIR("A")="Would you like to test another implementation? "
|
---|
16 | D ^DIR
|
---|
17 | I Y=1 G EN
|
---|
18 | Q
|
---|
19 | RUN(GMRCTYP) ; check the procedure or service for proper setup
|
---|
20 | N DIR,X,Y,DIROUT,DIRUT,DTOUT,SERV,PROC,GMRC773,HLL,LINK,HL
|
---|
21 | I GMRCTYP="P" D
|
---|
22 | . S DIR(0)="PA^123.3:EMQ"
|
---|
23 | . S DIR("A")="Select the GMRC Procedure that you'd like to test: "
|
---|
24 | I GMRCTYP="C" D
|
---|
25 | . S DIR(0)="PA^123.5:EMQ"
|
---|
26 | . S DIR("A")="Select the Consult service that you'd like to test: "
|
---|
27 | . S DIR("A")="Select the Consult service that you'd like to test: "
|
---|
28 | D ^DIR
|
---|
29 | I $G(Y)'>0 W !,"No procedure or service selected." Q
|
---|
30 | I GMRCTYP="P" S PROC=+Y I '$$TSTPROC(PROC) Q
|
---|
31 | I GMRCTYP="C" S SERV=+Y I '$$TSTSERV(SERV) Q
|
---|
32 | ;
|
---|
33 | ;send msg
|
---|
34 | K ^TMP("HLS",$J)
|
---|
35 | D INIT^HLFNC2("GMRC IFC ORM TEST",.HL)
|
---|
36 | S ^TMP("HLS",$J,1)=$$ORCTST^GMRCISG1
|
---|
37 | I $G(PROC) S ^TMP("HLS",$J,2)=$$OBRTST^GMRCISG1(PROC,"P")
|
---|
38 | I $G(SERV) S ^TMP("HLS",$J,2)=$$OBRTST^GMRCISG1(SERV,"C")
|
---|
39 | S LINK=$$ROUTE($S($G(PROC):PROC_";GMR(123.3,",1:SERV_";GMR(123.5,"))
|
---|
40 | I '$L(LINK) D Q ;problem with the HL LOGICAL LINK
|
---|
41 | . W !!,"The proper HL LOGICAL link could not be located!"
|
---|
42 | . W !,"Can't continue to test. Contact IRM."
|
---|
43 | S HLL("LINKS",1)=LINK
|
---|
44 | W !!," attempting to connect to remote system...",!
|
---|
45 | D DIRECT^HLMA("GMRC IFC ORM TEST","GM",1,.GMRC773)
|
---|
46 | I +$P(GMRC773,U,2) D Q ;problem with the HL link
|
---|
47 | . W !,"There was a problem communicating with the remote site."
|
---|
48 | . W !,"IRM may need to check the HL7 communications."
|
---|
49 | N HLNODE,SEG,I ;process response
|
---|
50 | K ^TMP("GMRCIF",$J)
|
---|
51 | F I=1:1 X HLNEXT Q:HLQUIT'>0 D
|
---|
52 | .S ^TMP("GMRCIF",$J,$P(HLNODE,"|"))=$E(HLNODE,5,999)
|
---|
53 | I $P(^TMP("GMRCIF",$J,"MSA"),"|")="AA" D
|
---|
54 | . W !!,"Congratulations! You're configured correctly."
|
---|
55 | I $P(^TMP("GMRCIF",$J,"MSA"),"|")="AR" D
|
---|
56 | . N ERR,GMRCER
|
---|
57 | . W !!,"There is an implementation problem. The remote site indicated:"
|
---|
58 | . S ERR=$P(^TMP("GMRCIF",$J,"MSA"),"|",3),GMRCER=+ERR
|
---|
59 | . I ERR S ERR="ERR"_ERR_"^GMRCIUTL" S ERR=$T(@ERR),ERR=$P(ERR,";",2)
|
---|
60 | . W !,?5,ERR_$S(+GMRCER:" ("_GMRCER_")",1:" (HL7 ERROR)")
|
---|
61 | K ^TMP("GMRCIF",$J),^TMP("HLS",$J),HLNEXT,HLQUIT
|
---|
62 | Q
|
---|
63 | ;
|
---|
64 | TSTPROC(GMRCPR) ;check procedure and make sure it has required fields for IFC
|
---|
65 | ; Input:
|
---|
66 | ; GMRCPR = ien from file 123.3
|
---|
67 | ;
|
---|
68 | ; Output:
|
---|
69 | ; 1 = configured correctly
|
---|
70 | ; 0 = one or more fields missing
|
---|
71 | ;
|
---|
72 | I '$D(^GMR(123.3,GMRCPR,"IFC")) D Q 0
|
---|
73 | . W !!,"This procedure is not configured for Inter-facility purposes."
|
---|
74 | I '$P(^GMR(123.3,GMRCPR,"IFC"),U) D Q 0
|
---|
75 | . W !!,"This procedure has no IFC ROUTING FACILITY entered."
|
---|
76 | I '$L($P(^GMR(123.3,GMRCPR,"IFC"),U,2)) D Q 0
|
---|
77 | . W !!,"This procedure has no IFC REMOTE NAME entered."
|
---|
78 | Q 1
|
---|
79 | ;
|
---|
80 | TSTSERV(GMRCSS) ;check service and make sure it has required fields for IFC
|
---|
81 | ; Input:
|
---|
82 | ; GMRCSS = ien from file 123.5
|
---|
83 | ;
|
---|
84 | ; Output:
|
---|
85 | ; 1 = configured correctly
|
---|
86 | ; 0 = one or more fields missing
|
---|
87 | ;
|
---|
88 | I '$D(^GMR(123.5,GMRCSS,"IFC")) D Q 0
|
---|
89 | . W !!,"This service is not configured for Inter-facility purposes."
|
---|
90 | I '$P(^GMR(123.5,GMRCSS,"IFC"),U) D Q 0
|
---|
91 | . W !!,"This service has no IFC ROUTING FACILITY entered."
|
---|
92 | I '$L($P(^GMR(123.5,GMRCSS,"IFC"),U,2)) D Q 0
|
---|
93 | . W !!,"This service has no IFC REMOTE NAME entered."
|
---|
94 | Q 1
|
---|
95 | ;
|
---|
96 | ROUTE(GMRCOI) ; get the right HL link for testing
|
---|
97 | ;Input:
|
---|
98 | ; GMRCOI = ien from file 123.3 or 123.5 in var ptr format
|
---|
99 | ;
|
---|
100 | ;Output:
|
---|
101 | ; the logical link to send the message to in format
|
---|
102 | ; "GMRC IFC SUBSC^VHAHIN"
|
---|
103 | ;
|
---|
104 | N SITE,GMRCLINK,STA
|
---|
105 | I '$G(GMRCOI) Q ""
|
---|
106 | I $P(GMRCOI,";",2)[123.3 D
|
---|
107 | . S SITE=$P($G(^GMR(123.3,+GMRCOI,"IFC")),U)
|
---|
108 | I $P(GMRCOI,";",2)[123.5 D
|
---|
109 | . S SITE=$P($G(^GMR(123.5,+GMRCOI,"IFC")),U)
|
---|
110 | I '$G(SITE) Q ""
|
---|
111 | S STA=$$STA^XUAF4(SITE)
|
---|
112 | I '$L(STA) Q ""
|
---|
113 | D LINK^HLUTIL3(STA,.GMRCLINK,"I")
|
---|
114 | S GMRCLINK=$O(GMRCLINK(0)) I 'GMRCLINK Q "" ; no link for that site
|
---|
115 | S GMRCLINK=GMRCLINK(GMRCLINK) I '$L(GMRCLINK) Q "" ;no link name
|
---|
116 | Q "GMRC IFC SUBSC^"_GMRCLINK
|
---|