| 1 | CRHDAM ; CAIRO/CLC -  ;04-Mar-2008 16:00;CLC;CLC
 | 
|---|
| 2 |  ;;1.0;CRHD;****;Jan 28, 2008;Build 19
 | 
|---|
| 3 |  ;=================================================================
 | 
|---|
| 4 |  ;copied from CWCVR0I
 | 
|---|
| 5 | PSGI(CRHDY,DFN) ;
 | 
|---|
| 6 |  N CRHDLST,CRHDAMED,CRHDNUM,CRHDCT,CRHDFG,CRHDDRGN,CRHDSEC,CRHDNUM2,CRHDLSTR,CRHDPFN
 | 
|---|
| 7 |  K CRHDY,CRHDLST,CRHDDRG
 | 
|---|
| 8 |  D ACTIVE^ORWPS(.CRHDLST,DFN)
 | 
|---|
| 9 |  S CRHDLSTR=$O(CRHDLST(999),-1),CRHDFG=1
 | 
|---|
| 10 |  I '$D(CRHDLST) S CRHDY="" Q CRHDY
 | 
|---|
| 11 |  S CRHDNUM=0 F  S CRHDNUM=$O(CRHDLST(CRHDNUM)) Q:'CRHDNUM!('CRHDFG)  D
 | 
|---|
| 12 |  .Q:$P(CRHDLST(CRHDNUM),U,10)'="ACTIVE"
 | 
|---|
| 13 |  .I CRHDLST(CRHDNUM)["~OP" Q
 | 
|---|
| 14 |  .S CRHDSEC=$E($P(CRHDLST(CRHDNUM),U,1),2,999)
 | 
|---|
| 15 |  .S CRHDDRGN=$P(CRHDLST(CRHDNUM),U,3)
 | 
|---|
| 16 |  .S CRHDPFN=+$P(CRHDLST(CRHDNUM),"^",2)
 | 
|---|
| 17 |  .S CRHDNUM2=CRHDNUM F  S CRHDNUM2=$O(CRHDLST(CRHDNUM2)) Q:$G(CRHDLST(+CRHDNUM2))["~"!('CRHDNUM2)  D
 | 
|---|
| 18 |  ..I $L($G(CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)))+$L(CRHDLST(CRHDNUM2))<80 S CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)=$G(CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN))_$$STRIP(CRHDLST(CRHDNUM2)," ")_" "
 | 
|---|
| 19 |  ..E  S CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)=$$STR($G(CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN))_" "_CRHDLST(CRHDNUM2),80)
 | 
|---|
| 20 |  ..I CRHDNUM2=CRHDLSTR S CRHDFG=0
 | 
|---|
| 21 |  . S CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)=DFN_"^"_CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)_"^^^"_CRHDPFN_$S($P(CRHDLST(CRHDNUM),"^",2)["U":"|5",1:"|IV")
 | 
|---|
| 22 |  . S:CRHDFG CRHDNUM=CRHDNUM2-1
 | 
|---|
| 23 |  S CRHDY(2)="0^<==UNIT DOSE==>",CRHDCT=2
 | 
|---|
| 24 |  S CRHDSEC=""
 | 
|---|
| 25 |  F CRHDSEC="UD","CP","IV" S CRHDFG=0,CRHDDRG="" F  S CRHDDRG=$O(CRHDAMED(CRHDSEC,CRHDDRG)) Q:CRHDDRG=""  D
 | 
|---|
| 26 |  .  S CRHDNUM=0 F  S CRHDNUM=$O(CRHDAMED(CRHDSEC,CRHDDRG,CRHDNUM)) Q:'CRHDNUM  D
 | 
|---|
| 27 |  .. I (CRHDSEC="UD"!(CRHDSEC="CP"))&'CRHDFG S CRHDY(CRHDCT)="0^<==UNIT DOSE==>",CRHDFG=1,CRHDCT=CRHDCT+1
 | 
|---|
| 28 |  .. I CRHDSEC="IV"&('CRHDFG) S CRHDY(CRHDCT)="0^<==IV DOSE==>",CRHDFG=1,CRHDCT=CRHDCT+1
 | 
|---|
| 29 |  .. S CRHDY(CRHDCT)=CRHDAMED(CRHDSEC,CRHDDRG,CRHDNUM),CRHDCT=CRHDCT+1
 | 
|---|
| 30 |  S CRHDY(-9900)=CRHDCT-2
 | 
|---|
| 31 |  Q $O(CRHDY(2))
 | 
|---|
| 32 | STR(CRHDSTR,CRHDLEN) ;
 | 
|---|
| 33 |  N CRHDX,CRHDCHAR,CRHDK
 | 
|---|
| 34 |  S CRHDX=""
 | 
|---|
| 35 |  I $L(CRHDSTR)>CRHDLEN S CRHDX=$E(CRHDSTR,1,CRHDLEN) D
 | 
|---|
| 36 |  .F CRHDK=132:-1 S CRHDCHAR=$E(CRHDX,CRHDK) Q:CRHDCHAR=" "  S CRHDX=$E(CRHDX,1,CRHDK-1)
 | 
|---|
| 37 |  .S CRHDX=CRHDX_"..."
 | 
|---|
| 38 |  I $L(CRHDSTR)<CRHDLEN S CRHDX=$E(CRHDSTR,1,CRHDLEN)
 | 
|---|
| 39 |  Q CRHDX
 | 
|---|
| 40 | STRIP(CRHDSTR,CRHDSTRP) ;
 | 
|---|
| 41 |  F  Q:$E(CRHDSTR,1)'=CRHDSTRP  S CRHDSTR=$E(CRHDSTR,2,$L(CRHDSTR))
 | 
|---|
| 42 |  Q CRHDSTR
 | 
|---|
| 43 | OUTPT(CRHDY,CRHDDFN) ;get outpatient active meds
 | 
|---|
| 44 |  N CRHDLST,CRHDAMED,CRHDNUM,CRHDCT,CRHDFG,CRHDDRGN,CRHDSEC,CRHDNUM2,CRHDLSTR,CRHDPFN
 | 
|---|
| 45 |  K CRHDY,CRHDLST
 | 
|---|
| 46 |  D ACTIVE^ORWPS(.CRHDLST,CRHDDFN)
 | 
|---|
| 47 |  S CRHDLSTR=$O(CRHDLST(999),-1),CRHDFG=1
 | 
|---|
| 48 |  I '$D(CRHDLST) S CRHDY="" Q CRHDY
 | 
|---|
| 49 |  S CRHDNUM=0 F  S CRHDNUM=$O(CRHDLST(CRHDNUM)) Q:'CRHDNUM!('CRHDFG)  D
 | 
|---|
| 50 |  .Q:$P(CRHDLST(CRHDNUM),U,10)'="ACTIVE"
 | 
|---|
| 51 |  .I CRHDLST(CRHDNUM)'["~OP" Q
 | 
|---|
| 52 |  .S CRHDSEC=$E($P(CRHDLST(CRHDNUM),U,1),2,999)
 | 
|---|
| 53 |  .S CRHDDRGN=$P(CRHDLST(CRHDNUM),U,3)
 | 
|---|
| 54 |  .S CRHDPFN=+$P(CRHDLST(CRHDNUM),"^",2)
 | 
|---|
| 55 |  .S CRHDNUM2=CRHDNUM F  S CRHDNUM2=$O(CRHDLST(CRHDNUM2)) Q:$G(CRHDLST(+CRHDNUM2))["~"!('CRHDNUM2)  D
 | 
|---|
| 56 |  ..I $L($G(CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)))+$L(CRHDLST(CRHDNUM2))<80 S CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)=$G(CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN))_$$STRIP(CRHDLST(CRHDNUM2)," ")_" "
 | 
|---|
| 57 |  ..E  S CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)=$$STR(CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)_" "_CRHDLST(CRHDNUM2),80)
 | 
|---|
| 58 |  ..I CRHDNUM2=CRHDLSTR S CRHDFG=0
 | 
|---|
| 59 |  . S CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)=CRHDDFN_"^"_CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)_"^^^"_CRHDPFN_$S($P(CRHDLST(CRHDNUM),"^",2)["U":"|5",1:"|IV")
 | 
|---|
| 60 |  . S:CRHDFG CRHDNUM=CRHDNUM2-1
 | 
|---|
| 61 |  S CRHDCT=1
 | 
|---|
| 62 |  ;S CRHDY(2)="0^<==OUTPATIENT MEDS==>",CRHDCT=2
 | 
|---|
| 63 |  S CRHDSEC="OP"
 | 
|---|
| 64 |  S CRHDFG=0,CRHDDRG="" F  S CRHDDRG=$O(CRHDAMED(CRHDSEC,CRHDDRG)) Q:CRHDDRG=""  D
 | 
|---|
| 65 |  .  S CRHDNUM=0 F  S CRHDNUM=$O(CRHDAMED(CRHDSEC,CRHDDRG,CRHDNUM)) Q:'CRHDNUM  D
 | 
|---|
| 66 |  .. I 'CRHDFG S CRHDY(CRHDCT)="0^<==OUTPATIENT MEDS==>",CRHDFG=1,CRHDCT=CRHDCT+1
 | 
|---|
| 67 |  .. S CRHDY(CRHDCT)=CRHDAMED(CRHDSEC,CRHDDRG,CRHDNUM),CRHDCT=CRHDCT+1
 | 
|---|
| 68 |  S CRHDY(-9900)=CRHDCT-2,$P(CRHDY(1),"^",1)=CRHDCT-2
 | 
|---|
| 69 |  Q $O(CRHDY(1))
 | 
|---|