| 1 | ORWDAL33 ;SLC/DAN - Allergy calls to support windows ;7/27/06  11:03
 | 
|---|
| 2 |  ;;3.0;ORDER ENTRY/RESULTS REPORTING;**215,260**;Dec 17, 1997;Build 26
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | CLINUSER(ORY)   ;can user mark allergy as entered in error
 | 
|---|
| 5 |  N DIC,X,PRM,Y,ORLST,ORX,PLIST,VALUE
 | 
|---|
| 6 |  S DIC=8989.51,DIC(0)="MX",X="OR ALLERGY ENTERED IN ERROR" D ^DIC
 | 
|---|
| 7 |  I Y=-1 S ORY=0 Q  ;Parameter not found so quit
 | 
|---|
| 8 |  S PRM=+Y
 | 
|---|
| 9 |  ;Check USER level
 | 
|---|
| 10 |  S ORY=$$GET^XPAR("USR",PRM) I ORY'="" Q
 | 
|---|
| 11 |  ;Check USER CLASS
 | 
|---|
| 12 |  D ENVAL^XPAR(.ORLST,PRM)
 | 
|---|
| 13 |  I ORLST>0 D
 | 
|---|
| 14 |  . S ORX="" F  S ORX=$O(ORLST(ORX)) Q:ORX=""  D
 | 
|---|
| 15 |  . . Q:ORX'["USR(8930"
 | 
|---|
| 16 |  . . I $$ISA^USRLM(DUZ,+ORX) S VALUE(+ORX)=ORLST(ORX,1)
 | 
|---|
| 17 |  . S ORX=0 F  S ORX=$O(VALUE(ORX)) Q:'+ORX  D REMOVE(ORX)
 | 
|---|
| 18 |  . S ORX=0 F  S ORX=$O(VALUE(ORX)) Q:'+ORX  S VALUE=$G(VALUE)!(VALUE(ORX))
 | 
|---|
| 19 |  S ORY=$G(VALUE)
 | 
|---|
| 20 |  I ORY'="" Q
 | 
|---|
| 21 |  ;Check division and system
 | 
|---|
| 22 |  S ORY=$$GET^XPAR("DIV^SYS",PRM) I ORY'="" Q
 | 
|---|
| 23 |  S ORY=0 Q
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 | REMOVE(SUB) ;Remove values at higher level classes
 | 
|---|
| 26 |  N IEN
 | 
|---|
| 27 |  S IEN=0 F  S IEN=$O(^USR(8930,"AD",SUB,IEN)) Q:'+IEN  D
 | 
|---|
| 28 |  .I $D(^USR(8930,"AD",IEN)) D REMOVE(IEN) ;Recursive call
 | 
|---|
| 29 |  .K VALUE(IEN)
 | 
|---|
| 30 |  Q
 | 
|---|