| 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 | 
|---|