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

ORCDRA1.m

Go to the documentation of this file.
  1. ORCDRA1 ;SLC/MKB-Utility functions for RA dialogs ; 08 May 2002 2:12 PM
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**4,75,141**;Dec 17, 1997
  1. DIV() ; -- Returns division of ordering location
  1. N Y I $G(ORL),'$G(OREVENT) S Y=+$P($G(^SC(+ORL,0)),U,15),Y=+$$SITE^VASITE(DT,Y)
  1. I $G(OREVENT) S Y=+$$DIV^OREVNTX(OREVENT)
  1. S:$G(Y)'>0 Y=+$G(DUZ(2))
  1. DIVQ Q Y
  1. ;
  1. CKPTYPE ; -- Check procedure for Series type
  1. N PTYPE S PTYPE=$P($G(^ORD(101.43,+$$VAL^ORCD("PROCEDURE"),"RA")),U,2)
  1. Q:PTYPE'="S" Q:'$L($P($G(^RAMIS(71.2,+Y,0)),U,2))
  1. W $C(7),!,"This procedure modifier may not be selected with a procedure series!",!
  1. K DONE,ORDIALOG(PROMPT,ORI)
  1. Q
  1. ;
  1. VALIDWP(ROOT) ; -- Validate wp field (borrowed from VALWP^RAUTL5)
  1. ; Pass back '1' is data is valid, '0' if not valid.
  1. Q:'$L($G(ROOT)) 0 Q:'$O(@(ROOT_"0)")) 0
  1. N CHAR,CNT,WL,WPFLG,X,Y,Z
  1. S (WPFLG,X)=0
  1. F S X=$O(@(ROOT_X_")")) Q:X'>0 D Q:WPFLG
  1. . S (CNT,WL)=0
  1. . S Y=$G(@(ROOT_X_",0)")) Q:Y']""
  1. . S WL=$L(Y)
  1. . F Z=1:1:WL D Q:WPFLG
  1. .. S CHAR=$E(Y,Z) S:CHAR?1AN CNT=CNT+1
  1. .. S:CHAR'?1AN&(CNT>0) CNT=0 S:CNT=2 WPFLG=1
  1. Q WPFLG
  1. ;
  1. CHNGCAT ; -- Kill dependent values if Category changes
  1. N P,PTR
  1. F P="LOCATION","CONTRACT/SHARING SOURCE","RESEARCH SOURCE" D
  1. . S PTR=+$O(^ORD(101.41,"AB",$E("OR GTX "_P,1,63),0))
  1. . K:PTR ORDIALOG(PTR,1),ORDIALOG(PTR,"S") ; kill value,screen
  1. Q
  1. ;
  1. MATCH(CATG) ; -- Category match pt location type?
  1. I $G(OREVENT) Q 1 ; location will be stuffed
  1. N TYPE,SCREEN,Y S TYPE=$P($G(^SC(+$G(ORL),0)),U,3),Y=1
  1. S:CATG="I"&(TYPE'="W") SCREEN="I $P(^(0),U,3)=""W"",'$P($G(^(""OOS"")),""^"")"
  1. S:CATG="O"&(TYPE="W") SCREEN="I $P(^(0),U,3)'=""W"",'$P($G(^(""OOS"")),""^"")"
  1. I $D(SCREEN) S Y=0,ORDIALOG($$PTR^ORCD("OR GTX LOCATION"),"S")=SCREEN
  1. Q Y
  1. ;
  1. SCHEDULD() ; -- Returns 1 or 0, if patient is scheduled for pre-op
  1. N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
  1. I $G(ORDIALOG(PROMPT,1)) Q 1 ; don't ask - already have date
  1. S DIR(0)="YAO",DIR("A")="Is this patient scheduled for pre-op? "
  1. S DIR("B")="NO" D ^DIR S:$D(DTOUT)!($D(DUOUT)) ORQUIT=1
  1. Q +Y
  1. ;
  1. MODE() ; -- Returns default mode of transport
  1. Q:$G(ORTYPE)="Z" "" N I,M,P
  1. S I=0,M=$O(^ORD(101.41,"AB","OR GTX MODIFIERS",0))
  1. S P=$O(^RAMIS(71.2,"B","PORTABLE EXAM",0))
  1. F S I=$O(ORDIALOG(M,I)) Q:I'>0 I ORDIALOG(M,I)=P S Y="P" Q
  1. S:'$D(Y) Y=$S($G(ORWARD):"W",1:"A")
  1. Q Y
  1. ;
  1. ILOC ; -- Get allowable imaging locations
  1. N ITYPE,ORY,IFN,CNT K ORDIALOG(PROMPT,"LIST")
  1. S ITYPE=$P(ORDG,U,4) D EN4^RAO7PC1(ITYPE,"ORY")
  1. S (IFN,CNT)=0 F S IFN=$O(ORY(IFN)) Q:IFN'>0 D
  1. . S CNT=CNT+1,ORDIALOG(PROMPT,"LIST",CNT)=ORY(IFN)_U_IFN
  1. . S ORDIALOG(PROMPT,"LIST","B",$P(ORY(IFN),U,2))=IFN
  1. S:CNT ORDIALOG(PROMPT,"LIST")=CNT_"^1",Y=+ORDIALOG(PROMPT,"LIST",1)
  1. Q
  1. ;
  1. DEFLOC() ; -- Returns default imaging location
  1. N X,I S X=+$G(ORDIALOG(PROMPT,"LIST",1))
  1. I $G(ORDIV) S I=0 F S I=$O(ORDIALOG(PROMPT,"LIST",I)) Q:I'>0 I $P(ORDIALOG(PROMPT,"LIST",I),U,3)=ORDIV S X=+ORDIALOG(PROMPT,"LIST",I) Q
  1. Q X