1 | DGRPTU ;ALB/RMO - 10-10T Registration - Utilities; 04/25/2003
|
---|
2 | ;;5.3;Registration;**108,513**;08/13/93
|
---|
3 | ;
|
---|
4 | GETPAT(DGHOWPT,DGADDF,DFN,DGNEWPF) ;Look-up patient
|
---|
5 | ; Input -- DGHOWPT How was patient entered
|
---|
6 | ; 1 =10-10T registration
|
---|
7 | ; DGADDF Add new entry flag (optional)
|
---|
8 | ; 1 =Allow new patient
|
---|
9 | ; Output -- DFN Patient IEN
|
---|
10 | ; # =Patient IEN
|
---|
11 | ; -1 =No patient selected
|
---|
12 | ; DGNEWPF New patient added flag
|
---|
13 | ; 1 =New patient added
|
---|
14 | ; Null=Existing patient
|
---|
15 | N DD,DIC,DINUM,DLAYGO,DO,X,Y
|
---|
16 | S DIC="^DPT(",DIC(0)="AEMQ"
|
---|
17 | I $G(DGADDF) S DIC(0)=DIC(0)_"L",DLAYGO=2
|
---|
18 | W !! D ^DIC S DFN=+Y,DGNEWPF=$P(Y,U,3) N Y W ! D PAUSE^DG10
|
---|
19 | ;If new patient
|
---|
20 | I DGNEWPF D
|
---|
21 | . N DA,DIE,DR
|
---|
22 | . ;Set 'how was patient entered' field
|
---|
23 | . I $G(DGHOWPT) S DA=DFN,DIE="^DPT(",DR=".098////"_DGHOWPT D ^DIE
|
---|
24 | . ;Invoke code to execute new patient DR string for patient type
|
---|
25 | . D NEW^DGRP
|
---|
26 | Q
|
---|
27 | ;
|
---|
28 | SETPAR(DGDIV,DGIO,DGASKDEV,DGRPTOUT) ;Set up registration parameters
|
---|
29 | ; Input -- None
|
---|
30 | ; Output -- DGDIV Primary Medical Center Division IEN
|
---|
31 | ; DGIO Registration printer array
|
---|
32 | ; DGASKDEV Registration ask device flag
|
---|
33 | ; DGRPTOUT Quit flag
|
---|
34 | ; 1 =Timeout or User up-arrow
|
---|
35 | ;Check ADT parameter set-up and user
|
---|
36 | D LO^DGUTL
|
---|
37 | ;Get primary medical center division IEN
|
---|
38 | S DGDIV=$$PRIM^VASITE
|
---|
39 | ;Get 1010 printer
|
---|
40 | D GETPRT(DGDIV,.DGIO,.DGASKDEV,.DGRPTOUT)
|
---|
41 | SETPARQ Q
|
---|
42 | ;
|
---|
43 | GETPRT(DGDIV,DGIO,DGASKDEV,DGRPTOUT) ;Get registration printer defaults
|
---|
44 | ; Input -- DGDIV Primary Medical Center Division IEN
|
---|
45 | ; Output -- DGIO Registration printer array
|
---|
46 | ; DGASKDEV Registration ask device flag
|
---|
47 | ; DGRPTOUT Quit flag
|
---|
48 | ; -1 =User entered up-arrow
|
---|
49 | ; -2 =Timeout
|
---|
50 | N DGASK,DTOUT,DUOUT,I,POP,Y
|
---|
51 | ASK ;Ask device in registration
|
---|
52 | I $P(^DG(43,1,0),U,39) D G GETPRTQ:$G(DGRPTOUT),ASK:$G(DGASK)
|
---|
53 | . S DGASK=0
|
---|
54 | . S:DGDIV %ZIS("B")=$P($G(^DG(40.8,+DGDIV,"DEV")),U,1)
|
---|
55 | . S %ZIS="NQ",%ZIS("A")="Select 1010 printer: "
|
---|
56 | . W ! D ^%ZIS I POP S DGRPTOUT=$S($D(DTOUT):-2,1:-1) Q
|
---|
57 | . I $E(IOST,1,2)'["P-" W !,*7,"Not a printer" S DGASK=1 Q
|
---|
58 | . S (DGIO(10),DGIO("PRF"),DGIO("RT"),DGIO("HS"))=ION,DGASKDEV=1
|
---|
59 | ;Use closest printer
|
---|
60 | I '$D(DGIO),$P(^DG(43,1,0),U,30) D
|
---|
61 | . S %ZIS="N",IOP="HOME"
|
---|
62 | . D ^%ZIS
|
---|
63 | . I $D(IOS),IOS,$D(^%ZIS(1,+IOS,99)),$D(^%ZIS(1,+^(99),0)) S Y=$P(^(0),U,1) D
|
---|
64 | . . W !,"Using closest printer ",Y,!
|
---|
65 | . . F I=10,"PRF","RT","HS" S DGIO(I)=Y
|
---|
66 | ;Use 10-10 printer for division
|
---|
67 | I '$D(DGIO),$P($G(^DG(40.8,DGDIV,"DEV")),U,1)'="" S DGIO(10)=$P(^("DEV"),U,1)
|
---|
68 | ;Reset home device
|
---|
69 | D HOME^%ZIS
|
---|
70 | GETPRTQ K IO("Q"),%ZIS("B")
|
---|
71 | Q
|
---|
72 | ;
|
---|
73 | ELGCHK(DFN) ;Eligibility check for editing
|
---|
74 | ; Input -- DFN Patient IEN
|
---|
75 | ; Output -- 0=No and 1=Yes
|
---|
76 | N Y
|
---|
77 | ;If the elig is not verified, the user can edit
|
---|
78 | I $P($G(^DPT(DFN,.361)),U,1)'="V" S Y=1
|
---|
79 | ;If the elig is verified the user must hold the DG ELIGIBILITY key
|
---|
80 | ;to edit
|
---|
81 | I '$G(Y),$S('($D(DUZ)#2):0,'$D(^XUSEC("DG ELIGIBILITY",DUZ)):0,1:1) S Y=1
|
---|
82 | Q +$G(Y)
|
---|