source: WorldVistAEHR/trunk/r/TEXT_INTEGRATION_UTILITIES-GMRP-TIU/TIUGEDI1.m@ 1800

Last change on this file since 1800 was 613, checked in by George Lilly, 15 years ago

initial load of WorldVistAEHR

File size: 4.3 KB
Line 
1TIUGEDI1 ; SLC/MAM - Enter New ID Document Code; 11/14/00
2 ;;1.0;TEXT INTEGRATION UTILITIES;**100**;Jun 20, 1997
3 ; New rtn for ID notes
4 ; 3/2/00 moved GETRECG from TIUGEDIT to TIUGEDI1
5GETRECG(DFN,TIU,TIUTYP,TIUDPRM,TIUNEW,EDIT,DADDA) ; Get record
6 ;for ID entry.
7 ; Returns DA: new docmt for user to continue entering, or
8 ;existing docmt for user to edit, or just link, or addend.
9 ; Requires array TIU. References TIU("VSTR") = LOC;VDT;VTYP
10 ; TIU("VISIT") = Visit File IFN
11 ; TIU("LOC")
12 ; TIU("VLOC")
13 ; TIU("STOP") = stop code
14 ; Requires array TIUTYP as in MAIN
15 ; Passes back flags:
16 ; TIUNEW = 1 if good docmt is returned and it is new
17 ; = 0 if returned docmt already existed, timeout, etc
18 ; EDIT = 1 to open DA for edit (already know Person can edit)
19 ; = 0 to forget the edit
20 ; Requires DADDA = IFN of docmt DA will be added to.
21 N DA,MULTOK,TLFULL,DALKABLE,YESDOIT
22 ;-- Get parameters for selected title, set TLFULL: --
23 ; TLFULL: Already have max # entries on this title/pt/vst
24 ; MULTOK: More than ONE record/visit is OK
25 D DOCPRM^TIULC1(TIUTYP,.TIUDPRM) S MULTOK=+$P($G(TIUDPRM(0)),U,10)
26 S (TIUNEW,EDIT,TLFULL)=0
27 I 'MULTOK,$$EXIST^TIUEDI3(DFN,TIUTYP,TIU("VSTR")) S TLFULL=1
28 ; -- Find existing docmts for proposed title/patient/visit
29 ; which are linkable to DADDA: --
30 S DALKABLE=$$EXISTLNK(DFN,TIUTYP,TIU("VSTR"),DUZ,DADDA)
31 ; -- If there are NO such existing docmts,
32 ; let user create new or tell user they can't, quit: --
33 I 'DALKABLE D G GETX
34 . I 'TLFULL S DA=$$CREATREC^TIUEDI3(DFN,.TIU,TIUTYP(1)),TIUNEW=1 Q
35 . I TLFULL W !!,"There is already a ",$P(TIUTYP(1),U,3),".",!,"Only ONE record of this type per Visit is allowed...",! H 1 Q
36 ; -- There IS such a docmt. --
37 ; -- If docmt is already linked, and user can edit,
38 ; ask if user wants to create new note anyway: --
39 I $G(^TIU(8925,DALKABLE,21))=DADDA D G GETX
40 . W !,"The note already has an ID entry you can edit with that title and visit"
41 . S YESDOIT=$$READ^TIUU("Y","Would you like to create a new entry anyway","NO")
42 . I YESDOIT S DA=$$CREATREC^TIUEDI3(DFN,.TIU,TIUTYP(1)),TIUNEW=1 Q
43 . W !,"Opening the existing entry" S DA=DALKABLE,EDIT=1
44 ; -- If docmt is NOT already linked, create new,
45 ; or edit existing, or just link existing: --
46 W !,"You already have a document you can link for that patient, title, and visit."
47 S YESDOIT=$$READ^TIUU("Y","Would you like to create a new entry anyway","NO")
48 I $D(DUOUT)!$D(DTOUT)!$D(DIROUT) G GETX
49 I YESDOIT S DA=$$CREATREC^TIUEDI3(DFN,.TIU,TIUTYP(1)) S TIUNEW=1 G GETX
50 ; -- If user says, no don't create, then try edit: --
51 N CANDO S CANDO=+$$CANDO^TIULP(DALKABLE,"EDIT RECORD")
52 I CANDO W !,"Opening the existing entry" S DA=DALKABLE,EDIT=1 G GETX
53 ; -- If user can't edit, just return it for linking: --
54 I 'CANDO D G GETX
55 . S DA=DALKABLE
56GETX ;
57 I TIUNEW,'$G(DA) W !,"No new entry created" H 2 S TIUNEW=0
58 Q +$G(DA)
59 ;
60EXISTLNK(DFN,TIUTYP,TIUVSTR,PERSON,DADDA) ; If a docmt PERSON
61 ;can LINK already EXISTS for the given patient, title, and visit,
62 ;then return it. If there are more than one, get the smallest DA.
63 ; Receives TIUVSTR = LOC;VDT;VTYP
64 ; Needs TIUTYP = title DA
65 ; Needs DADDA = IFN of docmt DA will be added to.
66 N REQUEST,DA,TIUI,CANLINK,DALKDAD
67 I '$G(PERSON) S PERSON=DUZ
68 S (REQUEST,TIUI,DA)=0
69LOOP ; -- Find existing docmt for given patient, title, & visit:--
70 F S TIUI=+$O(^TIU(8925,"APTLD",DFN,TIUTYP,TIUVSTR,TIUI)) Q:'TIUI D Q:REQUEST Q:DA
71 . ; -- If TIUI is bad, reject it and keep looking:
72 . I '$D(^TIU(8925,TIUI,0)) D Q
73 . . K ^TIU(8925,"APTLD",DFN,TIUTYP,TIUVSTR,TIUI)
74 . ; -- If TIUI has requesting package (e.g. Consults),
75 . ; then reject it and quit looking: --
76 . I +$P($G(^TIU(8925,TIUI,14)),U,5) S REQUEST=1 Q ; **22**
77 . N CANLINK S CANLINK=+$$CANDO^TIULP(TIUI,"ATTACH TO ID NOTE",PERSON)
78 . ; -- If person can't link it, keep looking: --
79 . I 'CANLINK Q
80 . ; -- If already linked somewhere else, keep looking: --
81 . S DALKDAD=$G(^TIU(8925,TIUI,21))
82 . I DALKDAD,DALKDAD'=DADDA Q
83 . ; -- If already linked to dad, but can't edit, keep looking: --
84 . I DALKDAD,'$$CANDO^TIULP(TIUI,"EDIT RECORD") Q
85 . ; -- If already linked to dad & can edit, return it: --
86 . I DALKDAD S DA=TIUI Q
87 . ; -- If not already linked, return it: --
88 . S DA=TIUI
89EXISTLX ;
90 Q +$G(DA)
Note: See TracBrowser for help on using the repository browser.