[623] | 1 | RAHLRPC ;HIRMFO/BNT-Rad/NM HL7 Protocol calls ;05/21/99 14:50
|
---|
| 2 | ;;5.0;Radiology/Nuclear Medicine;**12,25,54,71,82,81**;Mar 16, 1998;Build 12
|
---|
| 3 | ; 03/16/2006 *71 Rem Call 124379 allow exam updates to create HL7 msg
|
---|
| 4 | REG ; register exam
|
---|
| 5 | N X,RAPID,RAEID
|
---|
| 6 | S RAPID="RA REF" ; get all protocols beginning RA REG
|
---|
| 7 | F S RAPID=$O(^ORD(101,"B",RAPID)) Q:RAPID'["RA REG" D
|
---|
| 8 | .S RAEID=$O(^ORD(101,"B",RAPID,0))
|
---|
| 9 | .I RAEID,'$L($P(^ORD(101,RAEID,0),"^",3)) D EN^RAHLR
|
---|
| 10 | Q
|
---|
| 11 | CANCEL ; cancel exam
|
---|
| 12 | N X,RAPID,RAEID
|
---|
| 13 | S RAPID="RA CANCEK" ; get all protocols beginning RA CANCEL
|
---|
| 14 | F S RAPID=$O(^ORD(101,"B",RAPID)) Q:RAPID'["RA CANCEL" D
|
---|
| 15 | .S RAEID=$O(^ORD(101,"B",RAPID,0))
|
---|
| 16 | .I RAEID,'$L($P(^ORD(101,RAEID,0),"^",3)) D EN^RAHLR
|
---|
| 17 | Q
|
---|
| 18 | ;
|
---|
| 19 | RPT ; report verified or released/not verified
|
---|
| 20 | N X,RAPID,RAEID,RASSS ; RASSS subcriber array to be passed to HLL for GENERATE^HLMA
|
---|
| 21 | ;S X="^%ET",@^%ZOSF("TRAP")
|
---|
| 22 | S RAPID="RA RPS" ; get all protocols beginning RA RPT
|
---|
| 23 | F S RAPID=$O(^ORD(101,"B",RAPID)) Q:RAPID'["RA RPT" D
|
---|
| 24 | .S RAEID=$O(^ORD(101,"B",RAPID,0)) K RASSS ; RA*5*81
|
---|
| 25 | .S:$L($G(RANOSEND)) RAEID=$$GETEID(RAEID,RANOSEND,.RASSS) ;RA*5*81
|
---|
| 26 | .I RAEID,'$L($P(^ORD(101,RAEID,0),"^",3)) D EN^RAHLRPT
|
---|
| 27 | K RANOSEND
|
---|
| 28 | Q
|
---|
| 29 | ;
|
---|
| 30 | EXM ;Examined case; called from RAUTL1 and RASTED after a case has been edited.
|
---|
| 31 | ;
|
---|
| 32 | ;Called from RAUTL1 and RASTED after a case's status is upgraded
|
---|
| 33 | ; and case's 30th piece is null
|
---|
| 34 | ;
|
---|
| 35 | ;If this new status is :
|
---|
| 36 | ; at a status (or higher than a status) where
|
---|
| 37 | ; GENERATE EXAMINED HL7 MSG = Y,
|
---|
| 38 | ; then :
|
---|
| 39 | ; 1. send an HL7 msg re this case having reached EXAMINED status
|
---|
| 40 | ; 2. set subfile 70.03's HL7 EXAMINED MSG SENT to Y
|
---|
| 41 | ;
|
---|
| 42 | ; RALOWER = next lower status
|
---|
| 43 | ; RANEWST = new status ien
|
---|
| 44 | ; RAEXEDT = Indication of editing of: proc, proc mod, req phys, CPT mod, Tech comm...
|
---|
| 45 | ; RAGENHL7 = Indication that sending ORU is due...
|
---|
| 46 | ;
|
---|
| 47 | N RAIMGTYI,RAIMGTYJ,RALOWER,RANEWST,RAEXMDUN,RAGENHL7
|
---|
| 48 | S RAIMGTYI=$P($G(^RADPT(RADFN,"DT",RADTI,0)),U,2),RAIMGTYJ=$P(^RA(79.2,RAIMGTYI,0),U),RANEWST=$P($G(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0)),U,3)
|
---|
| 49 | S:$P(^RA(72,RANEWST,0),U,8)="Y" RAGENHL7=1 ;this status has GEN HL7 marked Y
|
---|
| 50 | ; look thru lower statuses for GEN HL7 marked Y
|
---|
| 51 | DOWN S RALOWER=$P($G(^RA(72,+RANEWST,0)),U,3)
|
---|
| 52 | I '$G(RAGENHL7) F S RALOWER=$O(^RA(72,"AA",RAIMGTYJ,RALOWER),-1) Q:RALOWER<1 S:$P(^RA(72,+$O(^RA(72,"AA",RAIMGTYJ,RALOWER,0)),0),U,8)="Y" RAGENHL7=1
|
---|
| 53 | ;?? none of the lower status levels have GEN HL7 marked Y
|
---|
| 54 | K:$P(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0),U,30)="Y" RAGENHL7 ;already sent
|
---|
| 55 | Q:'$G(RAEXEDT)&'$G(RAGENHL7)
|
---|
| 56 | ;
|
---|
| 57 | 1 N RAEXMDUN
|
---|
| 58 | S RAEXMDUN=1
|
---|
| 59 | A1 N X,RAPID,RAEID
|
---|
| 60 | S RAPID="RA EXAMINEC" ; get all protocols beginning RA EXAMINED
|
---|
| 61 | F S RAPID=$O(^ORD(101,"B",RAPID)) Q:RAPID'["RA EXAMINED" D
|
---|
| 62 | .N RAGENHL7 S RAEID=$O(^ORD(101,"B",RAPID,0))
|
---|
| 63 | .I RAEID,'$L($P(^ORD(101,RAEID,0),"^",3)) D EN^RAHLR
|
---|
| 64 | S:$G(RAGENHL7) $P(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0),U,30)="Y"
|
---|
| 65 | Q
|
---|
| 66 | ;
|
---|
| 67 | GETEID(RAEID,RANOSEND,RASSS) ; RA*5*81 Return RAEID or 0 (zero) = for future use.
|
---|
| 68 | ; RAEID = IEN of regular Event driver
|
---|
| 69 | ; RANOSEND Application name or IEN from 771 file.. don't send message to Subcr. with this application.
|
---|
| 70 | ; RASSS Array of subcribers (IENs) associated with RANOSEND application
|
---|
| 71 | ; 0 (zero) returned if No subscriber exist or all subscribers associated with RANOSEND application.
|
---|
| 72 | S RAEID=$G(RAEID) Q:'RAEID!'$L($G(RANOSEND))!'$D(^ORD(101,+RAEID,0)) RAEID
|
---|
| 73 | N RAXX,ERR,X1,Y1,YY,RAPL,RANEW,RAPIDS,RAIEDS
|
---|
| 74 | S RAPL=$S(+RANOSEND:+RANOSEND,1:$O(^HL(771,"B",RANOSEND,0))) Q:'RAPL RAEID
|
---|
| 75 | D GETS^DIQ(101,RAEID_",","**","I","RAXX","ERR")
|
---|
| 76 | Q:$D(ERR) RAEID ; Was not able get Event driver info... so just pass event driver...
|
---|
| 77 | Q:'$D(RAXX(101.0775)) 0 ;No subcribers exist for Event driver
|
---|
| 78 | S X1="",RANEW=0,Y1=0 F S X1=$O(RAXX(101.0775,X1)) Q:'$L(X1) D
|
---|
| 79 | .S YY=$G(RAXX(101.0775,X1,.01,"I"))
|
---|
| 80 | .I $P($G(^ORD(101,+YY,770)),U,2)=RAPL D Q
|
---|
| 81 | ..S Y1=Y1+1,RASSS("EXCLUDE SUBSCRIBER",Y1)=YY ;Y1= 1,2,3...
|
---|
| 82 | .S RANEW=1
|
---|
| 83 | Q:'RANEW 0 ;All subscribers are associated with application RANOSEND.. Don't send the message.
|
---|
| 84 | Q RAEID
|
---|