1 | TIUEDIT ; SLC/JER - Enter/Edit a Document ; 6/11/2002
|
---|
2 | ;;1.0;TEXT INTEGRATION UTILITIES;**1,7,22,52,100,109,112**;Jun 20, 1997
|
---|
3 | ; Moved LOADDFLT, BOIL, CANXEC, REPLACE, INSMULT to TIUEDI4
|
---|
4 | ; Moved DIE, TEXTEDIT from TIUEDIT to TIUEDI4
|
---|
5 | ; Separated out modules SETTL, GETVST, ASKOK
|
---|
6 | ; Moved SETTL, GETVST, ASKOK from TIUEDIT to TIUEDI4
|
---|
7 | ; Changed call to GETREC^TIUEDI1 to call GETRECNW^TIUEDI3
|
---|
8 | MAIN(TIUCLASS,SUCCESS,DFN,TIUTITLE,EVNTFLAG,NOSAVE,TIUNDA,TIUSNGL,TIUCHNG) ; Create new document(s)
|
---|
9 | ; May branch off to edit existing docmt instead of creating new one.
|
---|
10 | ; Call with: [TIUCLASS] --> pointer to file (8925) corresponding to
|
---|
11 | ; the class (e.g., Progress Notes=3)
|
---|
12 | ; from which to select a title
|
---|
13 | ; [by ref] [SUCCESS] --> Boolean flag returned as IFN when a
|
---|
14 | ; record is created, or 0 when record
|
---|
15 | ; creation fails
|
---|
16 | ; [DFN] --> IEN in patient file (#2)
|
---|
17 | ; [TIUTITLE] --> Pointer or NAME or PTR^NAME of the
|
---|
18 | ; TITLE from file 8925.1 to be used as
|
---|
19 | ; the default.
|
---|
20 | ; [EVNTFLAG] --> Boolean flag for visit prompt (0 to
|
---|
21 | ; prompt, 1 to force event type visit)
|
---|
22 | ; [NOSAVE] --> Boolean flag to suppress saving the data
|
---|
23 | ; (e.g., when testing new Boilerplates
|
---|
24 | ; using DDEF action TRY, etc.).
|
---|
25 | ; [by ref] [TIUNDA] --> array of form: TIUNDA(IFN)="".
|
---|
26 | ; Used in SHOW NOTES ACROSS PATIENTS.
|
---|
27 | ; See TIURC, which sets TIUONCE.
|
---|
28 | ; Also used in TIUEDIM, for mult pts.
|
---|
29 | ; [TIUSNGL] --> Boolean flag to create only ONE note
|
---|
30 | ; regardless of multiple pt preference.
|
---|
31 | ; [by ref] [TIUCHNG] --> If received, passes back TIUCHNG array,
|
---|
32 | ; which collects info across records about
|
---|
33 | ; actions taken. Used in feedback
|
---|
34 | ; msgs to user.
|
---|
35 | ; Other variables:
|
---|
36 | ; sets [TIUTYP] --> array with form similar to that of XQORNOD:
|
---|
37 | ; TIUTYP = title IFN
|
---|
38 | ; TIUTYP(1) = 1^title IFN^title name,
|
---|
39 | ; where 1 for us is just a positive #
|
---|
40 | ; sets [TIUBY] --> used in some input templates to BYpass fields.
|
---|
41 | ; Called by:
|
---|
42 | ; Outpt Pharmacy, Consults, ...
|
---|
43 | N TIUASK,TIUOUT,TIUREL,TIUCHK,TIUDA,TIUEDIT,TIUY,TIUTYP,TIUDPRM
|
---|
44 | N TIUDFLT,TIUPREF,TIULMETH,TIUVMETH,DIRUT,DUOUT,DTOUT,TIUPRM0
|
---|
45 | N TIUPRM1,TIUPRM3,TIUENTRY,TIUEXIT,TIUBY,TIUPNAME,TIUST
|
---|
46 | S EVNTFLAG=+$G(EVNTFLAG,0)
|
---|
47 | ; --Get user's division parameters, preferences: --
|
---|
48 | I '$D(TIUPRM0) D SETPARM^TIULE
|
---|
49 | S TIUPREF=$$PERSPRF^TIULE(DUZ)
|
---|
50 | ; -- multiple pts; not in OERR, not TRYing DDEF, not single docmt: --
|
---|
51 | I $P(TIUPREF,U,6)="M",(+$G(ORVP)'>0),(+$G(NOSAVE)'>0),'+$G(TIUSNGL) D MAIN^TIUEDIM(TIUCLASS,.TIUOUT,.TIUNDA,.TIUCHNG) Q
|
---|
52 | ; -- Loop: Create docmt --
|
---|
53 | F D Q:+$G(ORVP)!+$G(TIUOUT)!+$G(NOSAVE)!+$G(TIUSNGL)
|
---|
54 | . N TIU,TIUCMMTX,TIUBY,TIUEDIT,TIUNEW,TIUTYP,VADM,VAIN,CANEDIT
|
---|
55 | . ; -- User specifies basic info for new docmt --
|
---|
56 | . ; -- Get patient --
|
---|
57 | . I +$G(ORVP) S DFN=+$G(ORVP)
|
---|
58 | . I +$G(DFN)'>0 D I +DFN'>0 S TIUOUT=1 Q
|
---|
59 | . . S DFN=+$$PATIENT^TIULA
|
---|
60 | . ; -- [For progress notes, show available notes]: --
|
---|
61 | . S TIUCLASS=$G(TIUCLASS,38)
|
---|
62 | . I TIUCLASS=3,$S(+$$ISA^USRLM(DUZ,"TRANSCRIPTIONIST"):0,1:1),(+$G(NOSAVE)'>0) D EXSTNOTE^TIUEDI2(DFN) D:$G(VALMAR)="^TMP(""OR"",$J,""CURRENT"")" FULL^VALM1
|
---|
63 | . I +$G(DIROUT)!+$G(DUOUT)!+$G(DTOUT) S TIUOUT=1 Q
|
---|
64 | . ; -- Set title array TIUTYP (use TIUTITLE or ask user) --
|
---|
65 | . D SETTL^TIUEDI4(.TIUTYP,TIUCLASS,$G(TIUTITLE)) I +$G(TIUTYP)'>0 S TIUOUT=1 Q
|
---|
66 | . ; --- Re-direct SURGICAL REPORTS ---
|
---|
67 | . I +$$ISA^TIULX(TIUTYP,+$$CLASS^TIUSROI("SURGICAL REPORTS")) D ENTEROP^TIUSROI(DFN,TIUTYP) Q
|
---|
68 | . ; -- Get doc parameters for title, X entry action --
|
---|
69 | . D DOCPRM^TIULC1(TIUTYP,.TIUDPRM)
|
---|
70 | . S TIUENTRY=$$GETENTRY^TIUEDI2(+TIUTYP)
|
---|
71 | . I $L(TIUENTRY) X TIUENTRY
|
---|
72 | . Q:+$G(TIUOUT) ; If ENTRY ACTION sets TIUOUT=1 Abort entry
|
---|
73 | . ; -- Set visit array TIU --
|
---|
74 | . D GETVST^TIUEDI4(DFN,TIUTYP,.TIU,EVNTFLAG)
|
---|
75 | . I '$D(TIU("VSTR")) K DFN,TIUTYP Q
|
---|
76 | . ; -- Ask OK --
|
---|
77 | . D ASKOK^TIUEDI4(TIUTYP,.TIU,.TIUBY,.TIUASK) I '$D(TIU("VSTR")) K DFN,TIUTYP Q
|
---|
78 | . ; -- If user OK'd basic info, go on to get text, etc.: --
|
---|
79 | . I $D(TIU),+$G(TIUASK) D
|
---|
80 | . . ; -- Get record DA --
|
---|
81 | . . ; DA is either: new stub record, ready for edit, or
|
---|
82 | . . ; existing record, for edit, or
|
---|
83 | . . ; existing record, for addendum
|
---|
84 | . . N DA
|
---|
85 | . . S DA=$$GETRECNW^TIUEDI3(DFN,.TIU,TIUTYP(1),.TIUNEW,.TIUDPRM,1,DUZ,.CANEDIT)
|
---|
86 | . . I +DA'>0 W !,"Unable to enter/edit." Q
|
---|
87 | . . ; -- [Addend DA and Quit] --
|
---|
88 | . . ; If record not new & user can't edit it, let user
|
---|
89 | . . ; write addendum and quit:
|
---|
90 | . . I 'TIUNEW,'CANEDIT D Q
|
---|
91 | . . . D ADDENDUM^TIUADD(DA,"",.TIUCHNG,1)
|
---|
92 | . . N TIUQUIT,TIUADD,TIUTDA
|
---|
93 | . . ; -- Edit new or existing DA --
|
---|
94 | . . D DIE^TIUEDI4(DA,.TIUQUIT)
|
---|
95 | . . Q:+$G(TIUQUIT)=2 ; DA doesn't exist (e.g. uparrowed w/ bad record)
|
---|
96 | . . ;If (CP) and (Timeout or Not Select Consult) and (Consult Associated), Quit before EMPTYDOC check
|
---|
97 | . . I +$$ISA^TIULX(TIUTYP,+$$CLASS^TIUCP),+$G(TIUQUIT)=1,+$P($G(^TIU(8925,+DA,14)),U,5)>0 Q
|
---|
98 | . . I $$EMPTYDOC^TIULF(DA) D DELETE(DA,0) S:$G(VALMAR)="^TMP(""TIUVIEW"",$J)" VALMBCK="Q" S:'+$G(TIUNEW) TIUCHNG("DELETE")=1 H:'+$G(TIUNEW) 2 Q
|
---|
99 | . . Q:+$G(TIUQUIT)
|
---|
100 | . . S:+DA SUCCESS=+DA
|
---|
101 | . . I +$G(TIUONCE) S TIUNDA(+$G(DA))="" ; See TIURC, Across Patients
|
---|
102 | . . ; -- Misc after-edit-stuff for DA --
|
---|
103 | . . ; -- Mark to ask workload at signature;
|
---|
104 | . . ; (STOP for Stop codes for stand-alone visits): --
|
---|
105 | . . I +$G(TIU("STOP")),(+$P($G(TIUDPRM(0)),U,14)'=1) D DEFER^TIUVSIT(DA,TIU("STOP")) I 1 ;piece 14 = suppress DX/CPT on entry
|
---|
106 | . . E D QUE^TIUPXAP1 ; Post workload now in background
|
---|
107 | . . S TIUCMMTX=$$COMMIT^TIULC1(+$P(TIUTYP(1),U,2))
|
---|
108 | . . I TIUCMMTX]"" X TIUCMMTX
|
---|
109 | . . D RELEASE^TIUT(DA)
|
---|
110 | . . D VERIFY^TIUT(DA)
|
---|
111 | . . ; -- Get signature for DA
|
---|
112 | . . D EDSIG^TIURS(DA)
|
---|
113 | . . ; - execute EXIT ACTION -
|
---|
114 | . . S TIUEXIT=$$GETEXIT^TIUEDI2(+$P(TIUTYP(1),U,2))
|
---|
115 | . . I $L(TIUEXIT) S TIUTDA=DA X TIUEXIT S DA=TIUTDA
|
---|
116 | . . ; -- [Prompt to add ID stub] --
|
---|
117 | . . ; I +$P($G(TIUDPRM(0)),U,20) D ADDSTUB^TIUGEDIT(DA)
|
---|
118 | . . ; -- [Prompt to print DA] --
|
---|
119 | . . I +$P($G(TIUDPRM(0)),U,8) D PRINT^TIUEPRNT(DA)
|
---|
120 | . K DFN ; Free patient
|
---|
121 | . S TIUPNAME=$$PNAME^TIULC1(TIUCLASS)
|
---|
122 | . I $$UP^XLFSTR($E(TIUPNAME,$L(TIUPNAME)))="S" S TIUPNAME=$E(TIUPNAME,1,$L(TIUPNAME)-1)
|
---|
123 | . ; -- [loop again] --
|
---|
124 | . I '+$G(NOSAVE),'+$G(ORVP),'+$G(TIUSNGL) W !!,"You may enter another ",TIUPNAME,". Press RETURN to exit.",!
|
---|
125 | Q
|
---|
126 | ;
|
---|
127 | DELETE(TIUDA,PROMPT,MSG,HUSH) ; Delete record
|
---|
128 | N DIDEL,DIE,DR,TIUD0,TIUVSIT,TIUVKILL,TIUDELX,TIUTYPE
|
---|
129 | S TIUD0=$G(^TIU(8925,+TIUDA,0)),TIUVSIT=$P(TIUD0,U,3),TIUTYPE=+TIUD0
|
---|
130 | I +$G(PROMPT),'+$$READ^TIUU("YO",MSG,"NO") W !,"Nothing Deleted." Q
|
---|
131 | K ^TIU(8925,"ASAVE",DUZ,TIUDA)
|
---|
132 | D DELIRT^TIUDIRT(TIUDA)
|
---|
133 | ; If a DELETE Action exists for the document definition, execute it
|
---|
134 | S TIUDELX=$$DELETE^TIULC1(TIUTYPE)
|
---|
135 | I TIUDELX]"" X TIUDELX
|
---|
136 | S DA=TIUDA,(DIDEL,DIE)=8925,DR=".01///@"
|
---|
137 | D ^DIE W:'+$G(HUSH) !,"<NOTHING ENTERED. "
|
---|
138 | I '+$G(HUSH) W:+TIUD0 $$PNAME^TIULC1(+TIUD0)," DELETED>"
|
---|
139 | D DELCOMP^TIUEDI1(TIUDA),DELAUDIT^TIUEDI1(TIUDA)
|
---|
140 | K ^TIU(8925,"ASAVE",DUZ,TIUDA) ; Remove Save Flag
|
---|
141 | D ALERTDEL^TIUALRT(TIUDA),ADDENDEL^TIUALRT(TIUDA)
|
---|
142 | ; I +TIUVSIT S TIUVKILL=$$DELVFILE^PXAPI("ALL",TIUVSIT,"","TEXT INTEGRATION UTILITIES")
|
---|
143 | Q
|
---|
144 | ;
|
---|