| 1 | TIUPUTSX ; SLC/MAM - Uploading Op Reports to SURGERY file #130 ;11/15/01
 | 
|---|
| 2 |  ;;1.0;TEXT INTEGRATION UTILITIES;**129**;Jun 20, 1997
 | 
|---|
| 3 |  ; External References in TIUPUTSX:
 | 
|---|
| 4 |  ;   DBIA 3477 ^SRF
 | 
|---|
| 5 | LOOKUP ; Upload Lookup Method for Document Definition Operative Report
 | 
|---|
| 6 |  ; -- Requires lookup variables TIUSRCN, TIUSSN, & TIUODT --
 | 
|---|
| 7 |  ;These contain the transcribed data needed by the Lookup Method
 | 
|---|
| 8 |  ;to look up the desired target record in the SURGERY file, and to
 | 
|---|
| 9 |  ;check that the record is consistent with at least one other item
 | 
|---|
| 10 |  ;of transcribed data.
 | 
|---|
| 11 |  ;Lookup variables must be listed in the Op Report Upload Header
 | 
|---|
| 12 |  ;Definition. They are set to their corresponding transcribed values
 | 
|---|
| 13 |  ;in GETREC^TIUPUTC1.
 | 
|---|
| 14 |  ; -- Sets Y= SURGERY record CASE NUMBER (the .001 field in the SURGERY
 | 
|---|
| 15 |  ;    file, #130) --
 | 
|---|
| 16 |  N DFN,TIUSR0
 | 
|---|
| 17 |  ; -- If lookup variable values are invalid or missing from
 | 
|---|
| 18 |  ;    transcription, set Y = -1 and quit --
 | 
|---|
| 19 |  I $S('$D(TIUSSN):1,$G(TIUSRCN)']"":1,$G(TIUSSN)?4N:1,$G(TIUSSN)']"":1,$G(TIUODT)'>0:1,1:0) S Y=-1 G LOOKUPX
 | 
|---|
| 20 |  I TIUSSN?3N1P2N1P4N.E S TIUSSN=$TR(TIUSSN,"-/","")
 | 
|---|
| 21 |  I TIUSSN["?" S Y=-1 G LOOKUPX
 | 
|---|
| 22 |  ; -- Kill unwanted field nodes of header caption array --
 | 
|---|
| 23 |  ;After this lookup (in STUFREC^TIUPUTC), the software uses array
 | 
|---|
| 24 |  ;TIUHDR to try to file transcribed data for ALL captions which
 | 
|---|
| 25 |  ;specify field numbers in the Upload Header Definition.  Since some
 | 
|---|
| 26 |  ;of these transcribed data may not be accurate, it is important NOT to
 | 
|---|
| 27 |  ;file them unless they are intended for filing. (They may be included
 | 
|---|
| 28 |  ;in the transcription for administrative purposes, or to help
 | 
|---|
| 29 |  ;look up the correct target record, but NOT BE INTENDED for filing.)
 | 
|---|
| 30 |  ;Since one can't know what captions sites may mistakenly have 
 | 
|---|
| 31 |  ;attributed field numbers to, it may be best to save out any nodes
 | 
|---|
| 32 |  ;that are intended for filing, kill the whole array, and then
 | 
|---|
| 33 |  ;replace the saved nodes. For Op Reports, NO fields are intended for
 | 
|---|
| 34 |  ;filing (except the text field, of course), so we kill ALL nodes
 | 
|---|
| 35 |  ;of TIUHDR.
 | 
|---|
| 36 |  K TIUHDR
 | 
|---|
| 37 |  ; -- Get the 0-node of the SURGERY record which corresponds to
 | 
|---|
| 38 |  ;    the transcribed CASE NUMBER --
 | 
|---|
| 39 |  S TIUSR0=$G(^SRF(TIUSRCN,0))
 | 
|---|
| 40 |  ; -- Get the patient that corresponds to transcribed SSN --
 | 
|---|
| 41 |  S DFN=+$$PATIENT^TIULA(TIUSSN)
 | 
|---|
| 42 |  ; -- Confirm that the patient from the SURGERY record matches
 | 
|---|
| 43 |  ;    the patient from the transcribed SSN --
 | 
|---|
| 44 |  I +TIUSR0'=DFN S Y=-1 G LOOKUPX
 | 
|---|
| 45 |  ; -- Confirm that the transcribed OPERATION DATE matches the OPERATION
 | 
|---|
| 46 |  ;DATE from the SURGERY record --
 | 
|---|
| 47 |  I $$IDATE^TIULC(TIUODT)'=$P($P(TIUSR0,U,9),".") S Y=-1 G LOOKUPX
 | 
|---|
| 48 |  ; -- If the data are consistent, set Y = transcribed CASE NUMBER,
 | 
|---|
| 49 |  ;(the .001 field in the SURGERY file) --
 | 
|---|
| 50 |  S Y=TIUSRCN
 | 
|---|
| 51 | LOOKUPX Q
 | 
|---|
| 52 | FIX ; Filing Error Resolution Code for Docmt Def Operative Report
 | 
|---|
| 53 |  ; -- Called by MRT Review Filing Events option (FILERR^TIURE)
 | 
|---|
| 54 |  ;    if BUFDA exists; otherwise called from an alert
 | 
|---|
| 55 |  ;    (DISPLAY^TIUPEVNT).  Warning: XQADATA may be left around
 | 
|---|
| 56 |  ;    from a PREVIOUS alert, so don't use it's existence to
 | 
|---|
| 57 |  ;    determine how this was called. --
 | 
|---|
| 58 |  ;    
 | 
|---|
| 59 |  N TIUOK,TIUOUT,X,Y,SURGDA,RETRY,DIC,DWPK,TIUBUF,TIUERRDA
 | 
|---|
| 60 |  N ECHO,TIUSR0
 | 
|---|
| 61 |  ; -- Inquire to SURGERY file and let user select the correct
 | 
|---|
| 62 |  ;    target record --
 | 
|---|
| 63 |  F  D  Q:+$G(TIUOUT)!$G(TIUOK)
 | 
|---|
| 64 |  . N DIC,X,Y,DA,DIQ
 | 
|---|
| 65 |  . W ! S DIC=130,DIC(0)="AEMNQ"
 | 
|---|
| 66 |  . S DIC("A")="Select Patient or Surgery Case Number: "
 | 
|---|
| 67 |  . D ^DIC I +Y'>0 S TIUOUT=1 W !,"OK, you can try again later" Q
 | 
|---|
| 68 |  . ; -- Show user the selected record in its entirety and get
 | 
|---|
| 69 |  . ;    user's confirmation --
 | 
|---|
| 70 |  . S (DA,SURGDA)=+Y,DIQ(0)="R" ; Show case number
 | 
|---|
| 71 |  . W ! D EN^DIQ
 | 
|---|
| 72 |  . S TIUOK=$$READ^TIUU("Y","... Is this the correct Surgery record","YES","^D RECDHELP^TIUPUTSX")
 | 
|---|
| 73 |  . I $D(DIRUT) S TIUOUT=1 W !,"OK, you can try again later"
 | 
|---|
| 74 |  ; -- Quit if user has not selected and confirmed a record --
 | 
|---|
| 75 |  I '$G(TIUOK) G FIXEXIT
 | 
|---|
| 76 |  ; -- Present user with correct header data corresponding to
 | 
|---|
| 77 |  ;    selected record --
 | 
|---|
| 78 |  W !!,"To file the transcribed Surgeon's Dictation into the Surgery record you have"
 | 
|---|
| 79 |  W !,"just selected, you will need to correct the upload data in its temporary"
 | 
|---|
| 80 |  W !,"storage place, and then try again to file it."
 | 
|---|
| 81 |  S TIUSR0=$G(^SRF(SURGDA,0))
 | 
|---|
| 82 |  ; -- Force $$NAME,SSN^TIULO to reinitialize pt demographics --
 | 
|---|
| 83 |  N VADM,VA,VAERR
 | 
|---|
| 84 |  W !!,"The stored upload header data for ",$$NAME^TIULS($$NAME^TIULO(+TIUSR0),"LAST,FIRST MI")
 | 
|---|
| 85 |  W !,"should be corrected to read:"
 | 
|---|
| 86 |  W !!,"PATIENT SSN:",?20,$$SSN^TIULO(+TIUSR0)
 | 
|---|
| 87 |  W !,"CASE NUMBER:",?20,SURGDA
 | 
|---|
| 88 |  W !,"OPERATION DATE:",?20,$$DATE^TIULS($P($P(TIUSR0,U,9),".")),!
 | 
|---|
| 89 |  ; -- Note: We did NOT present the patient name in the data (above)
 | 
|---|
| 90 |  ;    that should be corrected.  The patient name tends to be ambiguous
 | 
|---|
| 91 |  ;    and is not used in the Lookup Method, so we don't wish to imply
 | 
|---|
| 92 |  ;    that it IS used --
 | 
|---|
| 93 |  I '$$READ^TIUU("EA","Press RETURN to continue...") W !,"OK, you can try again later" G FIXEXIT
 | 
|---|
| 94 |  ; -- Get 8925.2 Buffer IFN and 8925.4 Upload Log Event IFN from
 | 
|---|
| 95 |  ;    calling routine TIURE or TIUPEVNT --
 | 
|---|
| 96 |  I +$G(BUFDA) S TIUBUF=+BUFDA,TIUERRDA=+$G(ERRDA)
 | 
|---|
| 97 |  I '$G(BUFDA),+$G(XQADATA) S TIUBUF=+$G(XQADATA),TIUERRDA=+$P(XQADATA,";",3)
 | 
|---|
| 98 |  I '$G(TIUBUF)!'$G(TIUERRDA) W !,"Can't find stored upload record; see IRM" H 5 G FIXEXIT
 | 
|---|
| 99 |  I '$G(TIUERRDA) S TIUERRDA=0
 | 
|---|
| 100 |  ; -- Let user correct the header data in the TIU UPLOAD BUFFER file
 | 
|---|
| 101 |  ;   entry, and then try (again) to file it in the SURGERY file --
 | 
|---|
| 102 |  W !!,"You may now correct the stored upload data."
 | 
|---|
| 103 |  S DIC="^TIU(8925.2,"_+TIUBUF_",""TEXT"",",DWPK=1 D EN^DIWE
 | 
|---|
| 104 |  S RETRY=$$READ^TIUU("YO","Are you ready to file this data in the Surgery file","YES","^D FILEHELP^TIUPUTSX")
 | 
|---|
| 105 |  ; -- Delete current filing error alert, mark the current error
 | 
|---|
| 106 |  ;    resolved in the TIU UPLOAD LOG file, and try to file the data
 | 
|---|
| 107 |  ;    from the corrected TIU UPLOAD BUFFER file entry into
 | 
|---|
| 108 |  ;    the SURGERY file. (If data fails to file again, a NEW alert is
 | 
|---|
| 109 |  ;    generated during that process.) --
 | 
|---|
| 110 |  I 'RETRY W !,"OK, you can try again later." G FIXEXIT
 | 
|---|
| 111 |  S ECHO=1 ; Will write "Filing Record//Resolving Error..."
 | 
|---|
| 112 |  D ALERTDEL^TIUPEVNT(TIUBUF),RESOLVE^TIUPEVNT(TIUERRDA,ECHO),FILE^TIUUPLD(TIUBUF)
 | 
|---|
| 113 |  I $G(BUFDA),'$G(TIUDONE) W !,"Old error marked resolved; new error created.  New error may take several more",!,"seconds to file, and may not be within current date/time range.",! H 5 ; Feedback for MRT option
 | 
|---|
| 114 | FIXEXIT ;
 | 
|---|
| 115 |  ; -- Set variables to go to exit for DISPLAY^TIUPEVNT
 | 
|---|
| 116 |  ;    or FILERR^TIURE immediately upon return from this resolve
 | 
|---|
| 117 |  ;    code.  (Everything they do after executing the resolve code
 | 
|---|
| 118 |  ;    has been incorporated INTO THIS CODE.)
 | 
|---|
| 119 |  K EVNTDA S TIUDONE=1
 | 
|---|
| 120 |  Q
 | 
|---|
| 121 |  ;
 | 
|---|
| 122 | RECDHELP ;Help for correct record prompt
 | 
|---|
| 123 |  W !,"Is this the Surgery record you wish to upload the transcribed data into?"
 | 
|---|
| 124 |  W !,"If not, answer NO and select a different record, or enter '^' to come back",!,"and resolve the filing error later."
 | 
|---|
| 125 |  Q
 | 
|---|
| 126 | FILEHELP ;Help for retrying the upload filer prompt
 | 
|---|
| 127 |  W !,"If you are sure that you have identified the correct Surgery record, and have"
 | 
|---|
| 128 |  W !,"corrected the stored header data accordingly, then answer YES to try again"
 | 
|---|
| 129 |  W !,"to upload the data into the Surgery record."
 | 
|---|
| 130 |  W !,"If you answer NO, the corrected data will remain in temporary storage,"
 | 
|---|
| 131 |  W !,"the filing error alert will remain in place, and you can attempt to resolve"
 | 
|---|
| 132 |  W !,"the alert later."
 | 
|---|
| 133 |  Q
 | 
|---|