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