[613] | 1 | OREV4 ;SLC/DAN Event delayed orders cont ;10/25/02 13:54
|
---|
| 2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**141**;Dec 17, 1997
|
---|
| 3 | ;DBIA reference section
|
---|
| 4 | ;10006 - DIC
|
---|
| 5 | ;10018 - DIE
|
---|
| 6 | ;10013 - DIK
|
---|
| 7 | ;10103 - XLFDT
|
---|
| 8 | ;2056 - DIQ
|
---|
| 9 | ;2263 - XPAR
|
---|
| 10 | ;
|
---|
| 11 | N Y,DIC,ZTSAVE,IEN
|
---|
| 12 | S DIC="^ORE(100.2,",DIC(0)="AEMQ" D ^DIC
|
---|
| 13 | Q:Y=-1 ;Quit if no selection made
|
---|
| 14 | S IEN=+Y
|
---|
| 15 | W !
|
---|
| 16 | S ZTSAVE("IEN")="",ZTSAVE("DIC")="",ZTSAVE("IO*")=""
|
---|
| 17 | D QUE^ORUTL1("DQI^OREV4","Patient event inquiry",.ZTSAVE) ;Get device to print on
|
---|
| 18 | Q
|
---|
| 19 | ;
|
---|
| 20 | DQI ;Tasked entry point or continue if not queued
|
---|
| 21 | U IO
|
---|
| 22 | S DA=IEN
|
---|
| 23 | D EN^DIQ
|
---|
| 24 | Q
|
---|
| 25 | ;
|
---|
| 26 | CHKPRM ;Checks to see if event is defined in either the OREVNT DEFAULT
|
---|
| 27 | ;or the OREVNT COMMON LIST parameter. If so, then it will be removed
|
---|
| 28 | ;from the parameters as PARENT type events are not allowed in these
|
---|
| 29 | ;parameters. This API is called when an event becomes a parent.
|
---|
| 30 | N DIC,Y,X,PRMC,PRMD,PARAM,I,J
|
---|
| 31 | S DIC=8989.51,DIC(0)="MX",X="OREVNT COMMON LIST" D ^DIC
|
---|
| 32 | Q:Y=-1 ;Parameter doesn't exist
|
---|
| 33 | S PRMC=+Y
|
---|
| 34 | S X="OREVNT DEFAULT" D ^DIC
|
---|
| 35 | Q:Y=-1 ;Parameter doesn't exist
|
---|
| 36 | S PRMD=+Y
|
---|
| 37 | F PARAM=PRMC,PRMD D
|
---|
| 38 | .K ORLST
|
---|
| 39 | .D ENVAL^XPAR(.ORLST,PRMC) ;get list of values
|
---|
| 40 | .Q:ORLST=0 ;No values
|
---|
| 41 | .S I="" F S I=$O(ORLST(I)) Q:I="" D
|
---|
| 42 | ..S J="" F S J=$O(ORLST(I,J)) Q:J="" D
|
---|
| 43 | ...I ORLST(I,J)=DA D EN^XPAR(I,PARAM,J,"@") ;delete event from parameter
|
---|
| 44 | Q
|
---|
| 45 | ;
|
---|
| 46 | DELAYED(DFN) ;Display list of delayed events for a patient, identified by DFN
|
---|
| 47 | N EVT,IFN,DISP
|
---|
| 48 | I '$D(^ORE(100.2,"AE",DFN)) Q ;Quit if no delayed orders exist for the patient
|
---|
| 49 | S EVT=0,DISP=0
|
---|
| 50 | F S EVT=$O(^ORE(100.2,"AE",DFN,EVT)) Q:'+EVT D
|
---|
| 51 | .S IFN=$O(^ORE(100.2,"AE",DFN,EVT,0))
|
---|
| 52 | .Q:$$LAPSED^OREVNTX(IFN) ;quit if event has lapsed
|
---|
| 53 | .W:'DISP !!,"Delayed orders exist for this patient!",$C(7) S DISP=1
|
---|
| 54 | .W !,"EVENT: ",$P($G(^ORD(100.5,+$P(^ORE(100.2,IFN,0),U,2),0)),U,8),", created on ",$$FMTE^XLFDT($P(^ORE(100.2,IFN,0),U,5),1)
|
---|
| 55 | Q
|
---|
| 56 | ;
|
---|
| 57 | PARENTOK() ;This function determines if the event can be a parent
|
---|
| 58 | ;if an event has future delayed orders tied to it then it can't be
|
---|
| 59 | ;a parent
|
---|
| 60 | N OK,SUB,RIEN,PIEN
|
---|
| 61 | S OK=1
|
---|
| 62 | S SUB="^ORE(100.2,""AE"")"
|
---|
| 63 | F S SUB=$Q(@SUB) Q:SUB'["AE"!('OK) D
|
---|
| 64 | .S RIEN=$P(SUB,",",4) ;Release event ID
|
---|
| 65 | .S PIEN=$P(SUB,",",5) ;Patient event ID
|
---|
| 66 | .Q:$$LAPSED^OREVNTX(PIEN) ;quit if event has lapsed
|
---|
| 67 | .I RIEN=DA W !!,"You may not make ",$P($G(^ORD(100.5,DA,0)),U)," a parent",!,"at this time because there are unprocessed delayed orders assigned to it." H 3 S OK=0
|
---|
| 68 | Q OK
|
---|
| 69 | ;
|
---|
| 70 | ACTSURG(ORTYPE,DA) ;Function returns 1 if an active surgery event already exists
|
---|
| 71 | N ACT,DIV,I
|
---|
| 72 | S ACT=0
|
---|
| 73 | I ORTYPE="E" D
|
---|
| 74 | .S DIV=$P($G(^ORD(100.5,DA,0)),U,3)
|
---|
| 75 | .S I=0 F S I=$O(^ORD(100.5,"ADT","O",I)) Q:'+I I DA'=I I DIV=$P($G(^ORD(100.5,I,0)),U,3)&('$G(^ORD(100.5,I,1))) S ACT=1
|
---|
| 76 | .Q
|
---|
| 77 | I ORTYPE="A" D
|
---|
| 78 | .S DIV=$P($G(^ORD(100.6,DA,0)),U,3)
|
---|
| 79 | .S I=0 F S I=$O(^ORD(100.6,"AE",DIV,"O",I)) Q:'+I I I'=DA S ACT=1
|
---|
| 80 | .Q
|
---|
| 81 | Q ACT
|
---|
| 82 | ;
|
---|
| 83 | FROMTO(MUL,SUB1,SUB2) ;Check FROM - TO entries in file 100.6
|
---|
| 84 | N DA,DIK,LOC0,X,Y,DEL,ERR
|
---|
| 85 | I MUL="S" D Q
|
---|
| 86 | .I '$D(^ORD(100.6,SUB1,4,SUB2,1,"B")) D ;Check for TO entries in specialties multiple
|
---|
| 87 | ..W !!,"ERROR - Missing TO entry - ",$P($G(^DIC(45.7,$P(^ORD(100.6,SUB1,4,SUB2,0),U),0)),U)," DELETED.",!
|
---|
| 88 | ..S DA(1)=SUB1,DA=SUB2,DIK="^ORD(100.6,"_DA(1)_",4," D ^DIK
|
---|
| 89 | ;
|
---|
| 90 | I MUL="L" D
|
---|
| 91 | .S LOC0=^ORD(100.6,SUB1,5,SUB2,0)
|
---|
| 92 | .I +$P(LOC0,U,2)=0&($P(LOC0,U,3)="") S DEL=1,ERR=1
|
---|
| 93 | .I +$P(LOC0,U,4)=0&($P(LOC0,U,5)="") S DEL=1,ERR=1
|
---|
| 94 | .I $G(ERR) W !!,"ERROR - Missing FROM or TO location - '",$P(LOC0,U),"' DELETED.",! Q
|
---|
| 95 | .I $P(LOC0,U,2) D CLEAR(SUB1,SUB2,2) ;If user selects "all" clear "from" field
|
---|
| 96 | .I $P(LOC0,U,4) D CLEAR(SUB1,SUB2,4) ;If user selects "all" clear "to" field
|
---|
| 97 | .I $P(LOC0,U,2)&($P(LOC0,U,4)) W !!,"WARNING - You've defined a 'FROM ALL' locations to 'TO ALL' locations entry",!,"and it will supercede all other entries.",! Q
|
---|
| 98 | .I $O(^ORD(100.6,SUB1,5,"ADC",$S($P(LOC0,U,2)=1:"ALL",1:$P(LOC0,U,3)),$S($P(LOC0,U,4)=1:"ALL",1:$P(LOC0,U,5)),SUB2)) S DEL=1,ERR=1
|
---|
| 99 | .I $O(^ORD(100.6,SUB1,5,"ADC",$S($P(LOC0,U,2)=1:"ALL",1:$P(LOC0,U,3)),$S($P(LOC0,U,4)=1:"ALL",1:$P(LOC0,U,5)),SUB2),-1) S DEL=1,ERR=1
|
---|
| 100 | .I $G(ERR) W !!,"ERROR - Duplicate entry exists - '",$P(LOC0,U),"' DELETED.",!
|
---|
| 101 | I $G(DEL) S DIK="^ORD(100.6,"_SUB1_",5,",DA=SUB2,DA(1)=SUB1 D ^DIK
|
---|
| 102 | Q
|
---|
| 103 | ;
|
---|
| 104 | CLEAR(TENT,MENT,FIELD) ;Clear selected fields
|
---|
| 105 | N DA,DIE,Y,X,FILE
|
---|
| 106 | S FILE(100.62,MENT_","_TENT_",",FIELD)="@" D FILE^DIE("","FILE")
|
---|
| 107 | Q
|
---|