| 1 | GMTSRAD ; SLC/JER,KER HIN/GJC - Radiology Request Status ; 08/27/2002
 | 
|---|
| 2 |  ;;2.7;Health Summary;**14,28,56**;Oct 20, 1995
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; External References
 | 
|---|
| 5 |  ;   DBIA  3125  ^RADPT(
 | 
|---|
| 6 |  ;   DBIA  3125  ^RADPT("AO"
 | 
|---|
| 7 |  ;   DBIA   504  ^RAO(75.1
 | 
|---|
| 8 |  ;   DBIA  2056  $$GET1^DIQ (file 72)
 | 
|---|
| 9 |  ;   DBIA  2056  GETS^DIQ (file 70.03)
 | 
|---|
| 10 |  ;   DBIA 10015  EN^DIQ1 (file 75.1)
 | 
|---|
| 11 |  ;   DBIA 10104  $$LOW^XLFSTR
 | 
|---|
| 12 |  ;                  
 | 
|---|
| 13 | ENRAD ; Entry Point for HS only
 | 
|---|
| 14 |  N MAX K ^TMP("GMTSRAD",$J)
 | 
|---|
| 15 |  S MAX=$S(+$G(GMTSNDM)>0:GMTSNDM,1:99999)
 | 
|---|
| 16 |  Q:'$D(^RAO(75.1,"AS",DFN))  D GET
 | 
|---|
| 17 |  Q:'$D(^TMP("GMTSRAD",$J))  D LOOP
 | 
|---|
| 18 |  K ^TMP("GMTSRAD",$J)
 | 
|---|
| 19 |  Q
 | 
|---|
| 20 | GET ; Extract radiology orders
 | 
|---|
| 21 |  N DA,DIC,DIQ,DR,GMI,GMOUT,GMP,GMRDT,GMSTAT,GMPRC,GMSDT,GMDOC S GMI=0
 | 
|---|
| 22 |  F  S GMI=$O(^RAO(75.1,"AS",DFN,GMI)) Q:+GMI'>0!+$G(GMOUT)  D
 | 
|---|
| 23 |  . S DA=0 F  S DA=$O(^RAO(75.1,"AS",DFN,GMI,DA)) Q:+DA'>0!+$G(GMOUT)  D
 | 
|---|
| 24 |  . . N GMORD
 | 
|---|
| 25 |  . . S DIC="^RAO(75.1,",DIQ="GMORD(",DIQ(0)="IE",DR="2;5;14;16;23"
 | 
|---|
| 26 |  . . D EN^DIQ1
 | 
|---|
| 27 |  . . S GMRDT=$G(GMORD(75.1,DA,16,"I")),GMSTAT=$G(GMORD(75.1,DA,5,"E"))
 | 
|---|
| 28 |  . . I $S(GMRDT>GMTSEND:1,GMRDT<GMTSBEG:1,1:0) Q
 | 
|---|
| 29 |  . . S GMPRC=$G(GMORD(75.1,DA,2,"E")),GMP=$G(GMORD(75.1,DA,2,"I"))
 | 
|---|
| 30 |  . . S GMSDT=$G(GMORD(75.1,DA,23,"I")),GMDOC=$E($G(GMORD(75.1,DA,14,"E")),1,14)
 | 
|---|
| 31 |  . . I $L(GMPRC)>24 S GMPRC=$$WRAP^GMTSORC(GMPRC,24)
 | 
|---|
| 32 |  . . S GMSTAT=$E($$LOW^XLFSTR(GMSTAT))
 | 
|---|
| 33 |  . . S ^TMP("GMTSRAD",$J,9999999-GMRDT,DA,+GMP,0)=""
 | 
|---|
| 34 |  . . S ^TMP("GMTSRAD",$J,9999999-GMRDT,DA,+GMP)=GMRDT_U_GMSTAT_U_GMPRC_U_GMSDT_U_GMDOC
 | 
|---|
| 35 |  . . D REG(DA,GMP)
 | 
|---|
| 36 |  Q
 | 
|---|
| 37 | HDR ; Write column header
 | 
|---|
| 38 |  D CKP^GMTSUP Q:$D(GMTSQIT)  W "Req DT",?11,"Status",?22,"Procedure",?48,"Scheduled DT",?66,"Provider",!
 | 
|---|
| 39 |  D CKP^GMTSUP Q:$D(GMTSQIT)  W !
 | 
|---|
| 40 |  Q
 | 
|---|
| 41 | LOOP ; Loops through ^TMP("GMTSRAD",$J,
 | 
|---|
| 42 |  N GMCNT,GMI,GMORD,GMRDT,GMREC S (GMCNT,GMRDT)=0
 | 
|---|
| 43 |  D HDR
 | 
|---|
| 44 |  F  S GMRDT=$O(^TMP("GMTSRAD",$J,GMRDT)) Q:+GMRDT'>0!(GMCNT=MAX)  D
 | 
|---|
| 45 |  . S GMORD=0
 | 
|---|
| 46 |  . F  S GMORD=$O(^TMP("GMTSRAD",$J,GMRDT,GMORD)) Q:+GMORD'>0!(GMCNT=MAX)  D
 | 
|---|
| 47 |  . . S GMI=0
 | 
|---|
| 48 |  . . F  S GMI=$O(^TMP("GMTSRAD",$J,GMRDT,GMORD,GMI)) Q:+GMI'>0!(GMCNT=MAX)  D
 | 
|---|
| 49 |  . . . S GMREC(0)=$G(^TMP("GMTSRAD",$J,GMRDT,GMORD,GMI,0))
 | 
|---|
| 50 |  . . . S GMREC=$G(^TMP("GMTSRAD",$J,GMRDT,GMORD,GMI)),GMCNT=GMCNT+1 D WRT
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 | WRT ; Write record
 | 
|---|
| 53 |  N GMII,GMRDT1,GMSTAT,GMPRC,GMSDT,GMDOC,GMPRO,X
 | 
|---|
| 54 |  S X=+GMREC D REGDT4^GMTSU S GMRDT1=X,GMSTAT=$P(GMREC,U,2)
 | 
|---|
| 55 |  S GMPRC=$P(GMREC,U,3)
 | 
|---|
| 56 |  S X=$P(GMREC,U,4) D REGDTM4^GMTSU S GMSDT=X,GMDOC=$P(GMREC,U,5)
 | 
|---|
| 57 |  D CKP^GMTSUP Q:$D(GMTSQIT)  D
 | 
|---|
| 58 |  . I GMTSNPG D HDR
 | 
|---|
| 59 |  . W GMRDT1,?13,GMSTAT W:+$G(GMREC(0)) ?17,"Ord: "
 | 
|---|
| 60 |  . W ?22,$P(GMPRC,"|"),?48,GMSDT,?66,GMDOC,!
 | 
|---|
| 61 |  F GMII=2:1:$L(GMPRC,"|") D
 | 
|---|
| 62 |  . D CKP^GMTSUP Q:$D(GMTSQIT)  D:GMTSNPG HDR W ?22,$P(GMPRC,"|",GMII),!
 | 
|---|
| 63 |  I +$G(GMREC(0)) D
 | 
|---|
| 64 |  . D CKP^GMTSUP Q:$D(GMTSQIT)  D:GMTSNPG HDR
 | 
|---|
| 65 |  . S GMRCNT=0 W ?13,"Actual: "
 | 
|---|
| 66 |  . F  S GMRCNT=$O(^TMP("GMTSRAD",$J,GMRDT,GMORD,GMI,GMRCNT)) Q:GMRCNT'>0  D
 | 
|---|
| 67 |  .. S GMPRO=$G(^TMP("GMTSRAD",$J,GMRDT,GMORD,GMI,GMRCNT))
 | 
|---|
| 68 |  .. D CKP^GMTSUP Q:$D(GMTSQIT)  W ?21,$P(GMPRO,"|"),!
 | 
|---|
| 69 |  .. F GMII=2:1:$L(GMPRO,"|") D
 | 
|---|
| 70 |  ... D CKP^GMTSUP Q:$D(GMTSQIT)  D:GMTSNPG HDR W ?22,$P(GMPRO,"|",GMII),!
 | 
|---|
| 71 |  ... Q
 | 
|---|
| 72 |  .. Q
 | 
|---|
| 73 |  . Q
 | 
|---|
| 74 |  Q
 | 
|---|
| 75 |  ;                  
 | 
|---|
| 76 | REG(DA,GMP) ; Registered Order Parent/Differs
 | 
|---|
| 77 |  ;                 
 | 
|---|
| 78 |  ; If the order has been registered, check to see if the
 | 
|---|
| 79 |  ; procedure ordered is a parent or if the ordered procedure
 | 
|---|
| 80 |  ; differs from the registered procedure.
 | 
|---|
| 81 |  ;                 
 | 
|---|
| 82 |  ; Input: DA  -> ien of the order in file 75.1
 | 
|---|
| 83 |  ;      : GMP -> ien of the ordered procedure
 | 
|---|
| 84 |  Q:'$D(^RADPT("AO",DA))
 | 
|---|
| 85 |  N GMCNI,GMDFN,GMDTI,GMREG,GMRCNT,GMY2 S GMRCNT=0
 | 
|---|
| 86 |  S GMDFN=+$O(^RADPT("AO",DA,0)) Q:'GMDFN
 | 
|---|
| 87 |  S GMDTI=+$O(^RADPT("AO",DA,GMDFN,0)) Q:'GMDTI
 | 
|---|
| 88 |  S GMY2=$G(^RADPT(GMDFN,"DT",GMDTI,0))
 | 
|---|
| 89 |  I '$P(GMY2,"^",5) D  Q
 | 
|---|
| 90 |  . S GMCNI=+$O(^RADPT("AO",DA,GMDFN,GMDTI,0)) Q:GMCNI'>0
 | 
|---|
| 91 |  . D REG1(DA,GMDFN,GMDTI,GMCNI,GMP)
 | 
|---|
| 92 |  . Q
 | 
|---|
| 93 |  S GMCNI=0
 | 
|---|
| 94 |  F  S GMCNI=$O(^RADPT(GMDFN,"DT",GMDTI,"P",GMCNI)) Q:GMCNI'>0  D
 | 
|---|
| 95 |  . D REG1(DA,GMDFN,GMDTI,GMCNI,GMP)
 | 
|---|
| 96 |  . Q
 | 
|---|
| 97 |  Q
 | 
|---|
| 98 |  ;                  
 | 
|---|
| 99 | REG1(DA,GMDFN,GMDTI,GMCNI,GMP) ; Registered Order Differs
 | 
|---|
| 100 |  ;                    
 | 
|---|
| 101 |  ; Check if the ordered procedure differs from
 | 
|---|
| 102 |  ; the registered procedure.
 | 
|---|
| 103 |  ;                         
 | 
|---|
| 104 |  ; Input: DA    -> Order (75.1) ien
 | 
|---|
| 105 |  ;        GMDFN -> ien of the patient
 | 
|---|
| 106 |  ;        GMDTI -> inv. date/time of exam
 | 
|---|
| 107 |  ;        GMCNI -> ien of each case
 | 
|---|
| 108 |  ;        GMP   -> ien of the procedure for the order
 | 
|---|
| 109 |  ;                     
 | 
|---|
| 110 |  ; Sets: ^TMP("GMTSRAD",$J,inv Req Entered Date/Time,
 | 
|---|
| 111 |  ;       order ien,proc ien,
 | 
|---|
| 112 |  ;                   
 | 
|---|
| 113 |  ;            0)=1 if one of the following conditions exist:
 | 
|---|
| 114 |  ;            1) the procedure ordered is not the procedure
 | 
|---|
| 115 |  ;               registered (exam not cancelled)
 | 
|---|
| 116 |  ;            2) the ordered procedure is a parent and the
 | 
|---|
| 117 |  ;               descendent procedure(s) have been registered
 | 
|---|
| 118 |  ;               (exam not cancelled)
 | 
|---|
| 119 |  ;                   
 | 
|---|
| 120 |  ; Sets: ^TMP("GMTSRAD",$J,inv Req Entered Date/Time,
 | 
|---|
| 121 |  ;       order ien,proc ien,seq #)=Registered Procedure
 | 
|---|
| 122 |  N GMIEN,GMPRO,GMREG S GMRCNT=GMRCNT+1
 | 
|---|
| 123 |  S GMIEN=GMCNI_","_GMDTI_","_GMDFN_","
 | 
|---|
| 124 |  D GETS^DIQ(70.03,GMIEN,"2;3","IE","GMREG")
 | 
|---|
| 125 |  S GMPRO=GMREG(70.03,GMIEN,2,"E")
 | 
|---|
| 126 |  Q:GMPRO=""
 | 
|---|
| 127 |  Q:GMREG(70.03,GMIEN,3,"I")=""
 | 
|---|
| 128 |  Q:$$GET1^DIQ(72,GMREG(70.03,GMIEN,3,"I"),3,"I")=0
 | 
|---|
| 129 |  Q:GMP=GMREG(70.03,GMIEN,2,"I")
 | 
|---|
| 130 |  S ^TMP("GMTSRAD",$J,9999999-GMRDT,DA,+GMP,0)=1
 | 
|---|
| 131 |  S:$L(GMPRO)>24 GMPRO=$$WRAP^GMTSORC(GMPRO,24)
 | 
|---|
| 132 |  S ^TMP("GMTSRAD",$J,9999999-GMRDT,DA,+GMP,GMRCNT)=GMPRO
 | 
|---|
| 133 |  Q
 | 
|---|