| 1 | CRHDDNR ; CAIRO/CLC - GET ACTIVE DNR ORDER ;4/23/08  07:48
 | 
|---|
| 2 |  ;;1.0;CRHD;****;Jan 28, 2008;Build 19
 | 
|---|
| 3 |  ;=================================================================
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | ENT(CRHDRTN,DFN,CRHDNRTT,CRHDDIV,CRHDMULT) ;
 | 
|---|
| 6 |  K CRHDRTN
 | 
|---|
| 7 |  N CRHDRN S CRHDRN=1
 | 
|---|
| 8 |  S CRHDMULT=$G(CRHDMULT)
 | 
|---|
| 9 |  D DNRPARM(.CRHDNRTT,DUZ,.CRHDDIV)
 | 
|---|
| 10 |  I 'CRHDNRTT S CRHDNRTT(1)="^DNR ORDER"
 | 
|---|
| 11 |  N CRHDFILE,CRHDSDAT,CRHDFND,CRHDTMP,CRHDEXDT,CRHDBY,CRHDDI
 | 
|---|
| 12 |  N CRHDOI,CRHDEXN,X,Y,CRHDBDNR
 | 
|---|
| 13 |  N CRHDDDNR,CRHDBI,CRHDFLG,CRHDZ,CRHDCNT,CRHDZCT,CRHDZZOR
 | 
|---|
| 14 |  S (CRHDFLG,CRHDZCT)=0,CRHDCNT=1
 | 
|---|
| 15 |  S CRHDFILE=$$TERMLKUP^ORB31(.CRHDBY,"DNR")
 | 
|---|
| 16 |  S CRHDSDAT=$$NOW^XLFDT
 | 
|---|
| 17 |  ;S CRHDEXDT=9999999.999999-CRHDSDAT
 | 
|---|
| 18 |  S CRHDEXDT=0
 | 
|---|
| 19 |  F  S CRHDEXDT=$O(^OR(100,"AC",DFN_";DPT(",CRHDEXDT)) Q:'CRHDEXDT!(CRHDFLG)  D
 | 
|---|
| 20 |  .S CRHDEXN="" F  S CRHDEXN=$O(^OR(100,"AC",DFN_";DPT(",CRHDEXDT,CRHDEXN)) Q:CRHDEXN=""!(CRHDFLG)  D
 | 
|---|
| 21 |  ..I $D(CRHDBY),(+$G(CRHDFILE)=101.43) D
 | 
|---|
| 22 |  ...F CRHDBI=1:1:CRHDBY D
 | 
|---|
| 23 |  ....S CRHDBDNR=$P(CRHDBY(CRHDBI),U)
 | 
|---|
| 24 |  ....S CRHDOI=$$OI^ORQOR2(CRHDEXN)
 | 
|---|
| 25 |  ....I CRHDBDNR=CRHDOI D
 | 
|---|
| 26 |  .....D DETAIL("CRHDRTN",CRHDEXN,.CRHDFLG,.CRHDCNT,CRHDMULT)            ;,WRT("STMP")
 | 
|---|
| 27 |  ..;I '$$OI^ORQOR2(CRHDEXN)&('CRHDFLG) D
 | 
|---|
| 28 |  ..I 'CRHDFLG D
 | 
|---|
| 29 |  ...D DETAIL("CRHDRTN",CRHDEXN,.CRHDFLG,.CRHDCNT,CRHDMULT)    ;,WRT("TMP")
 | 
|---|
| 30 |  I '$D(CRHDRTN) S CRHDRTN(1)=""
 | 
|---|
| 31 |  E  S CRHDRTN(1)=$G(CRHDCNT)
 | 
|---|
| 32 |  Q
 | 
|---|
| 33 | DETAIL(CRHDY,CRHDIFN,CRHDFND,CRHDCNT,CRHDMDNR) ; -- Returns details of order CRHDIFN in CRHDY(#)
 | 
|---|
| 34 |  N CRHDMCNT,X,X2,I,CRHDILOG,CRHD0,CRHD3,CRHD6,CRHDSEQ,CRHDITEM,CRHDPRMT,CRHDMULT,CRHDFIRT,CRHDTITL,CRHDINST
 | 
|---|
| 35 |  N DIWL,DIWR,DIWF,CRHDACTI,CRHDII,VAIN,ORIGVIEW,CRHDNMSP,CRHDYT,CRHDDNR,CRHDXX,CRHDNX,CRHDGOTI,ORFLG
 | 
|---|
| 36 |  S CRHDIFN=+CRHDIFN,CRHD0=$G(^OR(100,CRHDIFN,0)),CRHD3=$G(^(3)),CRHD6=$G(^(6))
 | 
|---|
| 37 |  K CRHDYT S ORIGVIEW=1 D TEXT^CRHD8(.CRHDYT,+CRHDIFN_";"_+$P(CRHD3,U,7),254) ;CurrTx
 | 
|---|
| 38 |  I $D(CRHDYT) D
 | 
|---|
| 39 |  .Q:$D(CRHDZZOR(CRHDIFN))
 | 
|---|
| 40 |  .S CRHDDNR=0,CRHDDNR=$O(CRHDYT(CRHDDNR))
 | 
|---|
| 41 |  .S CRHDGOTI=0
 | 
|---|
| 42 |  .S CRHDXX="" F  S CRHDXX=$O(CRHDNRTT(CRHDXX)) Q:CRHDXX=""!(CRHDGOTI)!(CRHDFND)  D    ;S NX=0 F  S NX=$O(CRHDNRTT(XX,NX)) Q:'NX!(CRHDFND)  D
 | 
|---|
| 43 |  ..I ($G(CRHDYT(CRHDDNR))'[$P(CRHDNRTT(CRHDXX),"^",2))&($P(CRHDNRTT(CRHDXX),"^",2)'[CRHDYT(CRHDDNR)) Q
 | 
|---|
| 44 |  ..S CRHDZCT=$G(CRHDZCT)+1,CRHDGOTI=1
 | 
|---|
| 45 |  ..I 'CRHDMDNR S CRHDFND=1
 | 
|---|
| 46 |  ..I CRHDCNT>1 S CRHDCNT=CRHDCNT+1,@CRHDY@(CRHDCNT)=""
 | 
|---|
| 47 |  ..S CRHDMCNT=0 F CRHDII=1:1 S CRHDMCNT=$O(CRHDYT(CRHDMCNT)) Q:'CRHDMCNT  S CRHDCNT=CRHDCNT+1 D
 | 
|---|
| 48 |  ...I CRHDII=1 S @CRHDY@(CRHDCNT)=CRHDEXDT_"~"_CRHDIFN_"~"_CRHDYT(CRHDMCNT)
 | 
|---|
| 49 |  ...E  S @CRHDY@(CRHDCNT)=CRHDYT(CRHDMCNT)
 | 
|---|
| 50 |  ..S CRHDCNT=$G(CRHDCNT)+1
 | 
|---|
| 51 |  ..S @CRHDY@(CRHDCNT)="Start Date/Time: "_$S($P(CRHD0,U,8):$$DATE^ORQ20($P(CRHD0,U,8)),1:"")
 | 
|---|
| 52 |  ..I $P(CRHD3,U,5),$P(CRHD3,U,11)=2 S X=$$ORIG(CRHDIFN),@CRHDY@(CRHDCNT)=@CRHDY@(CRHDCNT)_" (originally "_$$DATE^ORQ20(X)_")"
 | 
|---|
| 53 |  ..S CRHDCNT=CRHDCNT+1
 | 
|---|
| 54 |  ..S:+$P(CRHD0,U,9) @CRHDY@(CRHDCNT)="Stop Date/Time: "_$S($P(CRHD0,U,9):$$DATE^ORQ20($P(CRHD0,U,9)),1:"")
 | 
|---|
| 55 |  ..S CRHDZZOR(CRHDIFN)=""
 | 
|---|
| 56 |  Q
 | 
|---|
| 57 | WRT(CRHDC,CRHDARRY,CRHDTRG) ;
 | 
|---|
| 58 |  Q:'$D(CRHDARRY)
 | 
|---|
| 59 |  N CRHDN
 | 
|---|
| 60 |  S CRHDN=0 F  S CRHDN=$O(CRHDARRY(CRHDN)) Q:'CRHDN  S CRHDC=$G(CRHDC)+1,@CRHDTRG@(CRHDC,0)=CRHDARRY(CRHDN)
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 | ORIG(CRHDIFN) ; -- Return original start date of [renewal] order
 | 
|---|
| 63 |  N CRHDI,CRHDY,CRHDX3,CRHDDONE
 | 
|---|
| 64 |  S CRHDI=CRHDIFN,CRHDY=$P($G(^OR(100,CRHDIFN,0)),U,8),CRHDDONE=0
 | 
|---|
| 65 |  F  S CRHDX3=$G(^OR(100,CRHDI,3)) D  Q:CRHDDONE
 | 
|---|
| 66 |  . I $P(CRHDX3,U,11)=2,$P(CRHDX3,U,5) S CRHDI=$P(CRHDX3,U,5) Q  ;loop
 | 
|---|
| 67 |  . S CRHDY=$P($G(^OR(100,CRHDI,0)),U,8),CRHDDONE=1
 | 
|---|
| 68 |  Q CRHDY
 | 
|---|
| 69 | DNRPARM(CRHDNRTT,DUZ,CRHDDIV) ;GET DNR TITLES
 | 
|---|
| 70 |  N CRHDPAR,CRHDDIVI
 | 
|---|
| 71 |  S CRHDNRTT=0
 | 
|---|
| 72 |  I '+$G(CRHDDIV) S CRHDDIV=+$$SITE^VASITE
 | 
|---|
| 73 |  I 'CRHDNRTT S CRHDPAR="DIV.`"_+CRHDDIV  D GETLST^XPAR(.CRHDNRTT,CRHDPAR,"CRHD DNR ORDER TITLE")
 | 
|---|
| 74 |  I 'CRHDNRTT D
 | 
|---|
| 75 |  .S CRHDDIVI=$O(^DIC(4,"D",CRHDDIV,0))
 | 
|---|
| 76 |  .I CRHDDIVI S CRHDPAR="DIV.`"_CRHDDIVI D GETLST^XPAR(.CRHDNRTT,CRHDPAR,"CRHD DNR ORDER TITLE")
 | 
|---|
| 77 |  Q
 | 
|---|