| 1 | MDRPCNT1 ; HOIFO/NCA - Object RPCs (TMDNOTE) Continued 2;10/29/04 12:20 ;3/12/08 09:15
|
---|
| 2 | ;;1.0;CLINICAL PROCEDURES;**6**;Apr 01, 2004;Build 102
|
---|
| 3 | ; Integration Agreements:
|
---|
| 4 | ; IA# 2693 [Subscription] TIU Extractions.
|
---|
| 5 | ; IA# 3535 [Subscription] Calls to TIUSRVP.
|
---|
| 6 | ADDMSG ; [Procedure] Add message to transaction
|
---|
| 7 | N MDIEN,MDIENS,MDRET
|
---|
| 8 | Q:'$G(DATA("TRANSACTION"))
|
---|
| 9 | Q:$G(DATA("MESSAGE"))=""
|
---|
| 10 | S MDIEN=+DATA("TRANSACTION"),MDIENS="+1,"_MDIEN_","
|
---|
| 11 | D NOW^%DTC S DATA("DATE")=%
|
---|
| 12 | S MDFDA(702.091,MDIENS,.01)=+$O(^MDD(702,+MDIEN,.091,"A"),-1)+1
|
---|
| 13 | S MDFDA(702.091,MDIENS,.02)=DATA("DATE")
|
---|
| 14 | S MDFDA(702.091,MDIENS,.03)=$G(DATA("PKG"),"UNKNOWN")
|
---|
| 15 | S MDFDA(702.091,MDIENS,.09)=DATA("MESSAGE")
|
---|
| 16 | D UPDATE^DIE("","MDFDA","MDRET")
|
---|
| 17 | Q
|
---|
| 18 | ;
|
---|
| 19 | FILEMSG(STUDY,MDPKG,MDSTAT,MDMSG) ; [Procedure] File Study Status and Message.
|
---|
| 20 | S DATA("TRANSACTION")=STUDY,DATA("PKG")=MDPKG
|
---|
| 21 | S DATA("MESSAGE")=$P(MDMSG,"^",2)
|
---|
| 22 | D STATUS(STUDY_",",MDSTAT,$P(MDMSG,"^",2)),ADDMSG
|
---|
| 23 | Q
|
---|
| 24 | ;
|
---|
| 25 | STATUS(MDIENS,MDSTAT,MDMSG) ; [Procedure] Update transaction status
|
---|
| 26 | S MDFDA(702,MDIENS,.08)=$G(MDMSG)
|
---|
| 27 | S MDFDA(702,MDIENS,.09)=MDSTAT
|
---|
| 28 | D FILE^DIE("","MDFDA")
|
---|
| 29 | Q
|
---|
| 30 | ;
|
---|
| 31 | SUBMIT(MDDATA,MDDT,MDAU,MDESIG,MDNTL,MDG1) ; [Procedure] Process the Image(s) Submission.
|
---|
| 32 | ; Input: MDDATA - Study ID
|
---|
| 33 | ; MDDT-Date/Time of Document
|
---|
| 34 | ; MDA - Author
|
---|
| 35 | ; MDESIG - Electronic Signature
|
---|
| 36 | ; MDNTL - Note title
|
---|
| 37 | ; MDG1 - ^TMP global with the text of the report
|
---|
| 38 | ; Output: -1^Error Message or
|
---|
| 39 | ; 1^Successful Message
|
---|
| 40 | N MDANS,MDRESUL,MDSTUDY,MDG2,RES
|
---|
| 41 | S MDSTUDY=+MDDATA,(RES,MDRESUL)=""
|
---|
| 42 | ; Create New TIU Document
|
---|
| 43 | S MDRESUL=$$NEWTIUN(MDSTUDY,MDDT,MDAU,MDNTL)
|
---|
| 44 | ; File TIU Error messages
|
---|
| 45 | I +MDRESUL<0 D Q RES
|
---|
| 46 | .D FILEMSG(MDSTUDY,"TIU",2,MDRESUL)
|
---|
| 47 | .S RES=MDRESUL
|
---|
| 48 | S MDANS=+MDRESUL
|
---|
| 49 | ; Update the text of the TIU document
|
---|
| 50 | S MDG2=@($NA(MDG1))
|
---|
| 51 | I +$O(@MDG2@(""),-1) D Q:RES'="" RES
|
---|
| 52 | .S MDRESUL=$$UPDATE(MDSTUDY,MDANS,MDESIG,MDG2)
|
---|
| 53 | .I +MDRESUL<0 D Q
|
---|
| 54 | ..D FILEMSG(MDSTUDY,"TIU",2,MDRESUL)
|
---|
| 55 | ..S RES=MDRESUL
|
---|
| 56 | S RES=MDANS
|
---|
| 57 | N XX S XX="",XX=$$UPDCONS^MDRPCOT1(+$P($G(^MDD(702,+MDSTUDY,0)),U,5),+$P($G(^MDD(702,+MDSTUDY,0)),U,6))
|
---|
| 58 | Q RES
|
---|
| 59 | ;
|
---|
| 60 | GETDATA(STUDY) ; [Function] Return the Necessary data for creating a TIU note.
|
---|
| 61 | ; Return: Patient DFN_"^"_TIU title_"^"_Hospital Location_"^"_TIU Note
|
---|
| 62 | ; IEN_"^"_Consult #_"^"_CP Definition IEN_"^"_Visit String_"^"
|
---|
| 63 | ; New Visit Flag
|
---|
| 64 | ; or
|
---|
| 65 | ; -1^Error Message
|
---|
| 66 | N DFN,MDCON,MDFN,MDIEN,MDIENS,MDLOC,MDNEWV,MDNOTE,MDNVST,MDPROC,MDVSTR,MDTITL,MDX,MDTST
|
---|
| 67 | S MDIEN=+STUDY,MDIENS=MDIEN_",",MDNVST=0
|
---|
| 68 | I $$GET1^DIQ(702,MDIENS,.01)="" Q "-1^No such study entry."
|
---|
| 69 | ; Get DFN
|
---|
| 70 | S DFN=$$GET1^DIQ(702,MDIEN,.01,"I")
|
---|
| 71 | I 'DFN Q "-1^No DFN."
|
---|
| 72 | ; Get CP Def
|
---|
| 73 | S MDPROC=$$GET1^DIQ(702,MDIEN,.04,"I")
|
---|
| 74 | I 'MDPROC Q "-1^No CP Def."
|
---|
| 75 | ; Get Consult
|
---|
| 76 | S MDCON=$$GET1^DIQ(702,MDIEN,.05,"I")
|
---|
| 77 | I 'MDCON Q "-1^No Consult #."
|
---|
| 78 | ; Get TIU Note Title
|
---|
| 79 | S MDTITL=$$GET1^DIQ(702.01,+MDPROC_",",.04,"I")
|
---|
| 80 | I 'MDTITL Q "-1^No TIU Note Title."
|
---|
| 81 | S MDVSTR=$$GET1^DIQ(702,MDIEN,.07)
|
---|
| 82 | I MDVSTR="" Q "-1^No Visit String."
|
---|
| 83 | I $L(MDVSTR,";")=1 S MDNVST=1,MDVSTR=";"_MDVSTR ; If new visit is selected
|
---|
| 84 | ; MDLOC is Hospital Location
|
---|
| 85 | I MDVSTR'="" D
|
---|
| 86 | .S MDVSTR=$$GETVSTR^MDRPCOT1(DFN,MDVSTR,MDPROC,$$GET1^DIQ(702,MDIEN,.02,"I"))
|
---|
| 87 | .S MDLOC=$P(MDVSTR,";",1)
|
---|
| 88 | ; Does TIU doc already exist?
|
---|
| 89 | ;I $$GET1^DIQ(702,MDIEN,.06,"I") Q DFN_"^"_MDTITL_"^"_MDLOC_"^"_+$$GET1^DIQ(702,MDIEN,.06,"I")_"^"_MDCON_"^"_MDPROC_"^"_MDVSTR_"^"_MDNVST
|
---|
| 90 | ; Does TIU doc exist for previous transaction of this consult?
|
---|
| 91 | ;I MDCON S MDNOTE=$$PREV(MDCON,MDIEN)
|
---|
| 92 | S MDNOTE=""
|
---|
| 93 | Q DFN_"^"_MDTITL_"^"_MDLOC_"^"_+MDNOTE_"^"_MDCON_"^"_MDPROC_"^"_MDVSTR_"^"_MDNVST
|
---|
| 94 | ;
|
---|
| 95 | NEWTIUN(STUDY,MDDT,MDA,MDNT) ; [Function] Create a new TIU for transaction
|
---|
| 96 | ; Input: STUDY - IENS of CP study entry
|
---|
| 97 | ; MDDT - Date of Note
|
---|
| 98 | ; MDA - Author
|
---|
| 99 | ; MDNT - Note Title
|
---|
| 100 | ; Return: TIU Document IEN
|
---|
| 101 | N CTR,DFN,MDCON,MDFDA,MDGST,MDL,MDLOC,MDNOTE,MDPDT,MDPROC,MDPT,MDRESU,MDDTTL,MDTITL,MDTSTR,MDVST,MDVSTR,MDWP S CTR=0,MDGST=+STUDY,MDRESU="" N MDFIL S MDFIL=8925.1
|
---|
| 102 | ; Get data for TIU Note Creation
|
---|
| 103 | S (MDTSTR,MDRESU)=$$GETDATA(MDGST),MDDTTL=0
|
---|
| 104 | ; File Error message
|
---|
| 105 | I +MDRESU<0 D FILEMSG(MDGST,"CP",2,MDRESU) Q MDRESU
|
---|
| 106 | I $G(MDTSTR)="" Q "-1^No Data to Create TIU Document"
|
---|
| 107 | F MDL="DFN","MDTITL","MDLOC","MDNOTE","MDCON","MDPROC","MDVSTR","MDNVST" D
|
---|
| 108 | .S CTR=CTR+1,@MDL=$P(MDTSTR,"^",CTR)
|
---|
| 109 | S (MDVST,MDRESU)=""
|
---|
| 110 | ; If previous TIU document exists, quit
|
---|
| 111 | ;I MDNOTE Q MDNOTE
|
---|
| 112 | I 'MDLOC Q "-1^No Hospital Location."
|
---|
| 113 | ; Create new visit, if no vstring
|
---|
| 114 | S MDDTTL=+$$FIND1^DIC(MDFIL,"","BOX",MDNT,"B","","MDERR")
|
---|
| 115 | S MDTITL=$S(+MDDTTL>0:+MDDTTL,1:MDTITL)
|
---|
| 116 | S MDPDT=$$PDT^MDRPCOT1(MDGST)
|
---|
| 117 | I 'MDPDT S MDPT=$O(^MDD(703.1,"ASTUDYID",+MDGST,0)),MDPDT=$P($G(^MDD(703.1,+MDPT,0)),U,3)
|
---|
| 118 | S:'MDPDT MDPDT=$P(MDVSTR,";",2) ; If No D/T Performed grab visit D/T
|
---|
| 119 | ; Build variables for TIU Call
|
---|
| 120 | S MDWP(.05)=1 ; Undicated Status
|
---|
| 121 | S MDWP(1201)=MDDT ; Date/Time Note Created
|
---|
| 122 | S MDWP(1202)=MDA ; Author of Note
|
---|
| 123 | S MDWP(1302)=MDA ; Entered By
|
---|
| 124 | S MDWP(1405)=+MDCON_";GMR(123," ; Package Reference
|
---|
| 125 | S MDWP(70201)=5 ; Default Procedure Summary Code "Machine Resulted"
|
---|
| 126 | I MDPDT S MDWP(70202)=MDPDT ; Date/Time Performed
|
---|
| 127 | ; File PCE Error message
|
---|
| 128 | I MDNVST S MDRESU=$$EN1^MDPCE(MDGST,MDPDT,MDPROC,$P(MDVSTR,";",3),"P") I +MDRESU S MDVST=+MDRESU,MDVSTR=$P(MDRESU,"^",2)
|
---|
| 129 | I +MDRESU<0 D FILEMSG(MDGST,"PCE",2,$P(MDRESU,"^",2)) Q MDRESU
|
---|
| 130 | ; Create the TIU note stub
|
---|
| 131 | S MDNOTE="" D MAKE^TIUSRVP(.MDNOTE,DFN,MDTITL,$P(MDVSTR,";",2),MDLOC,$S(MDVST:MDVST,1:""),.MDWP,MDVSTR,1,1)
|
---|
| 132 | I '(+MDNOTE) S $P(MDNOTE,"^")=-1 Q MDNOTE
|
---|
| 133 | ;S MDFDA(702,STUDY_",",.06)=+MDNOTE
|
---|
| 134 | S MDFDA(702,STUDY_",",.08)=""
|
---|
| 135 | D FILE^DIE("","MDFDA")
|
---|
| 136 | D UPD^MDKUTLR(STUDY,+MDNOTE)
|
---|
| 137 | Q MDNOTE
|
---|
| 138 | ;
|
---|
| 139 | UPDATE(STUDY,MDA,SIGN,MDGLB) ; Update the TIU document with the text
|
---|
| 140 | N MDK,MDNOTE,MDPPR,MDRESU,MDS,MDTI,MDTIUER,MDWP,MDV,MDV1 S (MDNOTE,MDTIUER)="" K MDWP,^TMP("MDTIUST",$J)
|
---|
| 141 | F MDK=0:0 S MDK=$O(@MDGLB@(MDK)) Q:'MDK S MDWP("TEXT",MDK,0)=$G(@MDGLB@(MDK))
|
---|
| 142 | S MDTI=MDA
|
---|
| 143 | S MDWP(.05)=5
|
---|
| 144 | D UPDATE^TIUSRVP(.MDNOTE,+MDTI,.MDWP,1)
|
---|
| 145 | I '+MDNOTE S MDNOTE="-1^"_$P(MDNOTE,"^",2) Q MDNOTE
|
---|
| 146 | ; Sign TIU Document
|
---|
| 147 | S MDS=$$SIGN(MDTI,SIGN) I MDS<0 Q MDS
|
---|
| 148 | Q 1
|
---|
| 149 | SIGN(MDTIUIN,MDSIGN) ; Sign the TIU Document
|
---|
| 150 | ; [Function] TIU SIGN RECORD
|
---|
| 151 | ;Input Parameters:
|
---|
| 152 | ; 1. TIUIEN [Literal/Required] TIU internal Entry Number
|
---|
| 153 | ; 2. MDSIGN [Literal/Required] User Signature
|
---|
| 154 | N MDSRES,X
|
---|
| 155 | S MDSRES=""
|
---|
| 156 | D SIGN^TIUSRVP(.MDSRES,MDTIUIN,MDSIGN)
|
---|
| 157 | I +MDSRES>0 Q "-1^"_$P(MDSRES,"^",2)
|
---|
| 158 | Q 1
|
---|
| 159 | ;
|
---|
| 160 | PREV(MDC,MDS) ; [Function] Return the Previous TIU document.
|
---|
| 161 | N MDNEWV,MDDOC,MDTRAN,MDTIUER,MDTST
|
---|
| 162 | S (MDDOC,MDNEWV,MDTRAN,MDTIUER,MDTST)="" K ^TMP("MDTIUST",$J)
|
---|
| 163 | F S MDTRAN=$O(^MDD(702,"ACON",MDC,MDTRAN)) Q:'MDTRAN D Q:'MDTRAN
|
---|
| 164 | .I $P(^MDD(702,MDTRAN,0),U,6) D
|
---|
| 165 | ..D EXTRACT^TIULQ($P(^MDD(702,MDTRAN,0),U,6),"^TMP(""MDTIUST"",$J)",MDTIUER,".01;.05;1406") Q:+MDTIUER
|
---|
| 166 | ..S MDTST=$G(^TMP("MDTIUST",$J,$P(^MDD(702,MDTRAN,0),U,6),.05,"E"))
|
---|
| 167 | ..I MDTST'="UNDICTATED"&(MDTST'="UNSIGNED") K ^TMP("MDTIUST",$J) Q
|
---|
| 168 | ..I MDTST="UNSIGNED"&'($G(^TMP("MDTIUST",$J,$P(^MDD(702,MDTRAN,0),U,6),1406,"I"))) K ^TMP("MDTIUST",$J) Q
|
---|
| 169 | ..S MDDOC=$P(^MDD(702,MDTRAN,0),U,6),MDNEWV=$P(^MDD(702,MDTRAN,0),U,7)
|
---|
| 170 | ..Q:'MDS
|
---|
| 171 | ..S MDFDA(702,MDS_",",.06)=MDDOC
|
---|
| 172 | ..S MDFDA(702,MDS_",",.07)=MDNEWV
|
---|
| 173 | ..D FILE^DIE("","MDFDA")
|
---|
| 174 | ..S MDTRAN=""
|
---|
| 175 | Q MDDOC
|
---|