Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: CRHDAM

CRHDAM.m

Go to the documentation of this file.
  1. CRHDAM ; CAIRO/CLC - ;04-Mar-2008 16:00;CLC;CLC
  1. ;;1.0;CRHD;**11**;Jan 28, 2008;Build 4
  1. ; Reference to ACTIVE^ORWPS in ICR #4954
  1. ;=================================================================
  1. ;copied from CWCVR0I
  1. PSGI(CRHDY,DFN) ;
  1. N CRHDLST,CRHDAMED,CRHDNUM,CRHDCT,CRHDFG,CRHDDRGN,CRHDSEC,CRHDNUM2,CRHDLSTR,CRHDPFN
  1. K CRHDY,CRHDLST,CRHDDRG
  1. D ACTIVE^ORWPS(.CRHDLST,DFN)
  1. S CRHDLSTR=$O(CRHDLST(999),-1),CRHDFG=1
  1. I '$D(CRHDLST) S CRHDY="" Q CRHDY
  1. ;CRHD*1*11 do not quit for !('CRHDFG)
  1. S CRHDNUM=0 F S CRHDNUM=$O(CRHDLST(CRHDNUM)) Q:'CRHDNUM D
  1. .Q:$P(CRHDLST(CRHDNUM),U,10)'="ACTIVE"
  1. .I CRHDLST(CRHDNUM)["~OP" Q
  1. .S CRHDSEC=$E($P(CRHDLST(CRHDNUM),U,1),2,999)
  1. .S CRHDDRGN=$P(CRHDLST(CRHDNUM),U,3)
  1. .S CRHDPFN=+$P(CRHDLST(CRHDNUM),"^",2)
  1. .S CRHDNUM2=CRHDNUM F S CRHDNUM2=$O(CRHDLST(CRHDNUM2)) Q:$G(CRHDLST(+CRHDNUM2))["~"!('CRHDNUM2) D
  1. ..I $L($G(CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)))+$L(CRHDLST(CRHDNUM2))<80 S CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)=$G(CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN))_$$STRIP(CRHDLST(CRHDNUM2)," ")_" "
  1. ..E S CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)=$$STR($G(CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN))_" "_CRHDLST(CRHDNUM2),80)
  1. ..;CRHD*1*11 Do not try to limit how many records are reviewed
  1. ..;I CRHDNUM2=CRHDLSTR S CRHDFG=0
  1. . S CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)=DFN_"^"_CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)_"^^^"_CRHDPFN_$S($P(CRHDLST(CRHDNUM),"^",2)["U":"|5",1:"|IV")
  1. . S:CRHDFG&(CRHDNUM2>0) CRHDNUM=CRHDNUM2-1
  1. S CRHDY(2)="0^<==UNIT DOSE==>",CRHDCT=2
  1. S CRHDSEC=""
  1. F CRHDSEC="UD","CP","IV" S CRHDFG=0,CRHDDRG="" F S CRHDDRG=$O(CRHDAMED(CRHDSEC,CRHDDRG)) Q:CRHDDRG="" D
  1. . S CRHDNUM=0 F S CRHDNUM=$O(CRHDAMED(CRHDSEC,CRHDDRG,CRHDNUM)) Q:'CRHDNUM D
  1. .. I (CRHDSEC="UD"!(CRHDSEC="CP"))&'CRHDFG S CRHDY(CRHDCT)="0^<==UNIT DOSE==>",CRHDFG=1,CRHDCT=CRHDCT+1
  1. .. I CRHDSEC="IV"&('CRHDFG) S CRHDY(CRHDCT)="0^<==IV DOSE==>",CRHDFG=1,CRHDCT=CRHDCT+1
  1. .. S CRHDY(CRHDCT)=CRHDAMED(CRHDSEC,CRHDDRG,CRHDNUM),CRHDCT=CRHDCT+1
  1. S CRHDY(-9900)=CRHDCT-2
  1. Q $O(CRHDY(2))
  1. STR(CRHDSTR,CRHDLEN) ;
  1. N CRHDX,CRHDCHAR,CRHDK
  1. S CRHDX=""
  1. I $L(CRHDSTR)>CRHDLEN S CRHDX=$E(CRHDSTR,1,CRHDLEN) D
  1. .F CRHDK=132:-1 S CRHDCHAR=$E(CRHDX,CRHDK) Q:CRHDCHAR=" " S CRHDX=$E(CRHDX,1,CRHDK-1)
  1. .S CRHDX=CRHDX_"..."
  1. I $L(CRHDSTR)<CRHDLEN S CRHDX=$E(CRHDSTR,1,CRHDLEN)
  1. Q CRHDX
  1. STRIP(CRHDSTR,CRHDSTRP) ;
  1. F Q:$E(CRHDSTR,1)'=CRHDSTRP S CRHDSTR=$E(CRHDSTR,2,$L(CRHDSTR))
  1. Q CRHDSTR
  1. OUTPT(CRHDY,CRHDDFN) ;get outpatient active meds
  1. N CRHDLST,CRHDAMED,CRHDNUM,CRHDCT,CRHDFG,CRHDDRGN,CRHDSEC,CRHDNUM2,CRHDLSTR,CRHDPFN
  1. K CRHDY,CRHDLST
  1. D ACTIVE^ORWPS(.CRHDLST,CRHDDFN)
  1. S CRHDLSTR=$O(CRHDLST(999),-1),CRHDFG=1
  1. I '$D(CRHDLST) S CRHDY="" Q CRHDY
  1. S CRHDNUM=0 F S CRHDNUM=$O(CRHDLST(CRHDNUM)) Q:'CRHDNUM!('CRHDFG) D
  1. .Q:$P(CRHDLST(CRHDNUM),U,10)'="ACTIVE"
  1. .I CRHDLST(CRHDNUM)'["~OP" Q
  1. .S CRHDSEC=$E($P(CRHDLST(CRHDNUM),U,1),2,999)
  1. .S CRHDDRGN=$P(CRHDLST(CRHDNUM),U,3)
  1. .S CRHDPFN=+$P(CRHDLST(CRHDNUM),"^",2)
  1. .S CRHDNUM2=CRHDNUM F S CRHDNUM2=$O(CRHDLST(CRHDNUM2)) Q:$G(CRHDLST(+CRHDNUM2))["~"!('CRHDNUM2) D
  1. ..I $L($G(CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)))+$L(CRHDLST(CRHDNUM2))<80 S CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)=$G(CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN))_$$STRIP(CRHDLST(CRHDNUM2)," ")_" "
  1. ..E S CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)=$$STR(CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)_" "_CRHDLST(CRHDNUM2),80)
  1. ..I CRHDNUM2=CRHDLSTR S CRHDFG=0
  1. . S CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)=CRHDDFN_"^"_CRHDAMED(CRHDSEC,CRHDDRGN,CRHDPFN)_"^^^"_CRHDPFN_$S($P(CRHDLST(CRHDNUM),"^",2)["U":"|5",1:"|IV")
  1. . S:CRHDFG CRHDNUM=CRHDNUM2-1
  1. S CRHDCT=1
  1. ;S CRHDY(2)="0^<==OUTPATIENT MEDS==>",CRHDCT=2
  1. S CRHDSEC="OP"
  1. S CRHDFG=0,CRHDDRG="" F S CRHDDRG=$O(CRHDAMED(CRHDSEC,CRHDDRG)) Q:CRHDDRG="" D
  1. . S CRHDNUM=0 F S CRHDNUM=$O(CRHDAMED(CRHDSEC,CRHDDRG,CRHDNUM)) Q:'CRHDNUM D
  1. .. I 'CRHDFG S CRHDY(CRHDCT)="0^<==OUTPATIENT MEDS==>",CRHDFG=1,CRHDCT=CRHDCT+1
  1. .. S CRHDY(CRHDCT)=CRHDAMED(CRHDSEC,CRHDDRG,CRHDNUM),CRHDCT=CRHDCT+1
  1. S CRHDY(-9900)=CRHDCT-2,$P(CRHDY(1),"^",1)=CRHDCT-2
  1. Q $O(CRHDY(1))