| 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 | 
|---|