Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/CLINICAL_PROCEDURES-MD/MDRPCOT.m

    r613 r623  
    1 MDRPCOT ; HOIFO/DP/NCA - Object RPCs (TMDTransaction) ;3/12/08  09:18
    2         ;;1.0;CLINICAL PROCEDURES;**5,6**;Apr 01, 2004;Build 102
    3         ; Integration Agreements:
    4         ; IA# 2693 [Subscription] TIU Extractions.
    5         ; IA# 2944 [Subscription] Calls to TIUSRVR1.
    6         ; IA# 3535 [Subscription] Calls to TIUSRVP.
    7         ; IA# 10104 [Supported] Routine XLFSTR calls
    8 ADDMSG  ; [Procedure] Add message to transaction
    9         N MDIEN,MDIENS,MDRET
    10         Q:'$G(DATA("TRANSACTION"))
    11         Q:$G(DATA("MESSAGE"))=""
    12         S MDIEN=+DATA("TRANSACTION"),MDIENS="+1,"_MDIEN_","
    13         D NOW^%DTC S DATA("DATE")=% K %
    14         S MDFDA(702.091,MDIENS,.01)=+$O(^MDD(702,+MDIEN,.091,"A"),-1)+1
    15         S MDFDA(702.091,MDIENS,.02)=DATA("DATE")
    16         S MDFDA(702.091,MDIENS,.03)=$G(DATA("PKG"),"UNKNOWN")
    17         S MDFDA(702.091,MDIENS,.09)=DATA("MESSAGE")
    18         D UPDATE^DIE("","MDFDA","MDRET")
    19         Q
    20         ;
    21 DELETE  ; [Procedure] Delete Study
    22         ; Sets @RESULTS@(0)="-1^Reason for not deleting" or "1^Study Deleted"
    23         ;
    24         N MDAST,MDHOLD,MDNOTE,MDRES,MDSIEN,BODY,SUBJECT,DEVIEN
    25         S (MDHOLD,MDSIEN)=+DATA,MDRES=0,MDNOTE=""
    26         D ALERT^MDHL7U3(MDSIEN) ; Builds the body of the mail message
    27         I $G(^MDD(702,+MDSIEN,0))="" S @RESULTS@(0)="1^Study Deleted." D NOTICE^MDHL7U3(SUBJECT,.BODY,DEVIEN,DUZ) Q  ;deleting message
    28         S:+$P(^MDD(702,MDSIEN,0),U,6) MDNOTE=$P(^MDD(702,MDSIEN,0),U,6)
    29         I "13"[$P(^MDD(702,MDSIEN,0),U,9) S @RESULTS@(0)="-1^Can't Delete TIU Note from a "_$$GET1^DIQ(702,MDSIEN,.09,"E")_" Study." Q
    30         I "5"[$P(^MDD(702,MDSIEN,0),U,9) S MDCANR=$$CANCEL^MDHL7B(MDHOLD) I MDCANR<1 S @RESULTS@(0)="-1^"_$P(MDCANR,"^",2) Q
    31         I +MDNOTE S MDRES="" D DELETE^TIUSRVP(.MDRES,MDNOTE)
    32         I MDRES D  Q
    33         .D STATUS(MDSIEN_",",2,$P(MDRES,"^",2))
    34         .S DATA("TRANSACTION")=MDSIEN,DATA("PKG")="TIU"
    35         .S DATA("MESSAGE")=$P(MDRES,"^",2) D ADDMSG
    36         .S @RESULTS@(0)="-1^"_$P(MDRES,"^",2)
    37         .Q
    38         E  D
    39         .I $D(^MDD(702.001,"ASTUDY",MDSIEN)) S @RESULTS@(0)="-1^Note associated with study, can not delete." Q
    40         .S MDAST=$$HL7CHK^MDHL7U3(+MDSIEN) I +MDAST<1 S @RESULTS@(0)=MDAST Q
    41         .D NOTICE^MDHL7U3(SUBJECT,.BODY,DEVIEN,DUZ) ; delete message
    42         .S MDFDA(702,DATA_",",.01)=""
    43         .; Check for renal study to delete as well
    44         .S:$D(^MDK(704.202,DATA)) MDFDA(704.202,DATA_",",.01)=""
    45         .D FILE^DIE("","MDFDA")
    46         .N DA,DIK S DA=+MDSIEN,DIK="^MDD(702," D ^DIK
    47         .S @RESULTS@(0)="1^Study Deleted."
    48         .Q
    49         Q
    50         ;
    51 FILEMSG(STUDY,MDPKG,MDSTAT,MDMSG)       ; [Procedure] File Study Status and Message.
    52         S DATA("TRANSACTION")=STUDY,DATA("PKG")=MDPKG
    53         S DATA("MESSAGE")=$P(MDMSG,"^",2)
    54         D STATUS(STUDY_",",MDSTAT,$P(MDMSG,"^",2)),ADDMSG
    55         Q
    56         ;
    57 FILES   ; [Procedure] Add/remove an attachment to this transaction
    58         NEW MDFDA,MDIEN,MDIENS,MDRET,P1,P2,P3,P4
    59         S P1=$P(DATA,U,1),P2=$P(DATA,U,2),P3=$P(DATA,U,3),P4=$P(DATA,U,4)
    60         S MDIEN=0 I $G(^MDD(702,+P1,0))="" Q
    61         ; Look for file (All comparisons done on lower case values)
    62         F  S MDIEN=$O(^MDD(702,P1,.1,MDIEN)) Q:'MDIEN  D  Q:X=P3
    63         .S X=$$LOW^XLFSTR($G(^MDD(702,P1,.1,MDIEN,.1)))
    64         I MDIEN&P4 S @RESULTS@(0)="1^File already assigned" Q
    65         I 'MDIEN&'P4 S @RESULTS@(0)="1^File not assigned" Q
    66         I P4 D  Q  ; Add a file
    67         .S MDIENS="+1,"_P1_","
    68         .S MDFDA(702.1,MDIENS,.01)=$O(^MDD(702,P1,.1,"B",""),-1)+1
    69         .S MDFDA(702.1,MDIENS,.02)=$S(P2:"I",1:"U")
    70         .I P2 S MDFDA(702.1,MDIENS,.03)=P2
    71         .S MDFDA(702.1,MDIENS,.1)=P3
    72         .D UPDATE^DIE("","MDFDA","MDIEN")
    73         .S @RESULTS@(0)=+$G(MDIEN(1),-1)
    74         I 'P4 D  Q  ; Remove the file
    75         .S MDFDA(702.1,MDIEN_","_P1_",",.01)="@"
    76         .D FILE^DIE("","MDFDA","MDRET")
    77         .S @RESULTS@(0)=$S($D(MDRET):-1,1:1)
    78         Q
    79         ;
    80 GETATT  ; [Procedure] Get Attachments
    81         F X=0:0 S X=$O(^MDD(702,DATA,.1,X)) Q:'X  D
    82         .S Y=$O(@RESULTS@(""),-1)+1
    83         .S @RESULTS@(Y)=$P(^MDD(702,DATA,.1,X,0),U,1,3)
    84         .S $P(@RESULTS@(Y),U,4)=$G(^MDD(702,DATA,.1,X,.1))
    85         S @RESULTS@(0)=+$O(@RESULTS@(""),-1)
    86         Q
    87         ;
    88 GETERR  ; [Procedure] Return list of Imaging Errors
    89         ; DATA = Transaction IEN
    90         F MDX=0:0 S MDX=$O(^MDD(702,DATA,.091,MDX)) Q:'MDX  D
    91         .S MDY=+^MDD(702,DATA,.091,MDX,0)_U,Y=$P(^(0),U,2)
    92         .D D^DIQ S MDY=MDY_Y_U
    93         .S MDY=MDY_$P(^MDD(702,DATA,.091,MDX,0),U,3)_U_$P(^(0),U,9)
    94         .S ^TMP($J,$O(^TMP($J,""),-1)+1)=MDY
    95         S ^TMP($J,0)=+$O(^TMP($J,""),-1)
    96         Q
    97         ;
    98 NEWSTAT ; [Procedure] RPC Call to set status
    99         S MDFDA(702,DATA,.09)=TYPE
    100         D FILE^DIE("","MDFDA")
    101         I TYPE=3&($G(^MDK(704.202,+DATA,0))'="") K MDFDA S MDFDA(704.202,DATA,.09)=0 D FILE^DIE("","MDFDA") K MDFDA
    102         Q
    103         ;
    104 RPC(RESULTS,OPTION,DATA,TYPE,FILE,RESREP)       ; [Procedure] Main RPC call
    105         N MDCANR,MDCON,MDDOC,MDFDA,MDFN,MDGST,MDHOLD,MDIEN,MDIENS,MDL,MDLOC,MDMSG,MDNEWV,MDNOTE,MDNVST,MDPDT,MDPKG,MDPROC,MDRES,MDRESU,MDRESUL,MDRET,MDS,MDSIEN,MDSTAT,MDSTUDY,MDTITL,MDTIUER,MDTRAN,MDTST,MDTSTR,MDVST,MDVSTR,MDWP,MDX,MDY
    106         S RESULTS=$NA(^TMP($J)) K @RESULTS
    107         D:$T(@OPTION)]"" @OPTION
    108         D:'$D(@RESULTS) BADRPC^MDRPCU("MD TMDTRANSACTION","MDRPCOT",OPTION)
    109         D CLEAN^DILF
    110         Q
    111         ;
    112 STATUS(MDIENS,MDSTAT,MDMSG)     ; [Procedure] Update transaction status
    113         S MDFDA(702,MDIENS,.08)=$G(MDMSG)
    114         S MDFDA(702,MDIENS,.09)=MDSTAT
    115         D FILE^DIE("","MDFDA")
    116         Q
    117         ;
    118 SUBMIT  ; [Procedure] Process the Image(s) Submission.
    119         ; Output: -1^Error Message or
    120         ;          1^Successful Message
    121         N MDRESUL,MDSTUDY
    122         S MDSTUDY=+DATA,MDRESUL=""
    123         ; Create New TIU Document
    124         S MDRESUL=$$NEWTIUN(MDSTUDY)
    125         ; File TIU Error messages
    126         I +MDRESUL<0 D  Q
    127         .D FILEMSG(MDSTUDY,"TIU",2,MDRESUL)
    128         .S @RESULTS@(0)=MDRESUL
    129         ; Submit and export the images
    130         S MDRESUL=$$SUBMIT^MDRPCOT1(MDSTUDY)
    131         ; File message
    132         D FILEMSG(MDSTUDY,"IMAGING",$S(+MDRESUL>0:+MDRESUL,1:2),MDRESUL)
    133         S @RESULTS@(0)=MDRESUL
    134         Q
    135         ;
    136 VIEWTIU ; [Procedure] VIew the associated tiu document
    137         I '$P(^MDD(702,+DATA,0),U,6) D  Q
    138         .S @RESULTS@(0)="NO TIU NOTE FOR THIS STUDY"
    139         D TGET^TIUSRVR1(.RESULTS,+$P(^MDD(702,+DATA,0),U,6))
    140         Q
    141         ;
    142 GETDATA(STUDY)  ; [Function] Return the Necessary data for creating a TIU note.
    143         ; Return: Patient DFN_"^"_TIU title_"^"_Hospital Location_"^"_TIU Note
    144         ;         IEN_"^"_Consult #_"^"_CP Definition IEN_"^"_Visit String_"^"
    145         ;         New Visit Flag
    146         ;         or
    147         ;         -1^Error Message
    148         N DFN,MDCON,MDFN,MDIEN,MDIENS,MDLOC,MDNEWV,MDNOTE,MDNVST,MDPROC,MDVSTR,MDTITL,MDX,MDTST
    149         S MDIEN=+STUDY,MDIENS=MDIEN_",",MDNVST=0
    150         I $$GET1^DIQ(702,MDIENS,.01)="" Q "-1^No such study entry."
    151         ; Get DFN
    152         S DFN=$$GET1^DIQ(702,MDIEN,.01,"I")
    153         I 'DFN Q "-1^No DFN."
    154         ; Get CP Def
    155         S MDPROC=$$GET1^DIQ(702,MDIEN,.04,"I")
    156         I 'MDPROC Q "-1^No CP Def."
    157         ; Get Consult
    158         S MDCON=$$GET1^DIQ(702,MDIEN,.05,"I")
    159         I 'MDCON Q "-1^No Consult #."
    160         ; Get TIU Note Title
    161         S MDTITL=$$GET1^DIQ(702.01,+MDPROC_",",.04,"I")
    162         I 'MDTITL Q "-1^No TIU Note Title."
    163         S MDVSTR=$$GET1^DIQ(702,MDIEN,.07)
    164         I MDVSTR=""  Q "-1^No Visit String."
    165         I $L(MDVSTR,";")=1 S MDNVST=1,MDVSTR=";"_MDVSTR ; If new visit is selected
    166         ; MDLOC is Hospital Location
    167         I MDVSTR'="" D
    168         .S MDVSTR=$$GETVSTR^MDRPCOT1(DFN,MDVSTR,MDPROC,$$GET1^DIQ(702,MDIEN,.02,"I"))
    169         .S MDLOC=$P(MDVSTR,";",1)
    170         I $$GET1^DIQ(702.01,+MDPROC_",",.12,"I")=1 Q DFN_"^"_MDTITL_"^"_MDLOC_"^^"_MDCON_"^"_MDPROC_"^"_MDVSTR_"^"_MDNVST
    171         ; Does TIU doc already exist?
    172         I $$GET1^DIQ(702,MDIEN,.06,"I") Q DFN_"^"_MDTITL_"^"_MDLOC_"^"_+$$GET1^DIQ(702,MDIEN,.06,"I")_"^"_MDCON_"^"_MDPROC_"^"_MDVSTR_"^"_MDNVST
    173         ; Does TIU doc exist for previous transaction of this consult?
    174         I MDCON S MDNOTE=$$PREV(MDCON,MDIEN)
    175         Q DFN_"^"_MDTITL_"^"_MDLOC_"^"_+MDNOTE_"^"_MDCON_"^"_MDPROC_"^"_MDVSTR_"^"_MDNVST
    176         ;
    177 NEWTIUN(STUDY)  ; [Function] Create a new TIU for transaction
    178         ; Input: STUDY - IENS of CP study entry
    179         ; Return: TIU Document IEN
    180         N CTR,DFN,MDCON,MDFDA,MDGST,MDL,MDLOC,MDNOTE,MDPDT,MDPROC,MDRESU,MDTITL,MDTSTR,MDVST,MDVSTR,MDWP,MDPT S CTR=0,MDGST=+STUDY,MDRESU=""
    181         ; Get data for TIU Note Creation
    182         S (MDTSTR,MDRESU)=$$GETDATA(MDGST)
    183         ; File Error message
    184         I +MDRESU<0 D FILEMSG(MDGST,"CP",2,MDRESU) Q MDRESU
    185         I $G(MDTSTR)="" Q "-1^No Data to Create TIU Document"
    186         F MDL="DFN","MDTITL","MDLOC","MDNOTE","MDCON","MDPROC","MDVSTR","MDNVST" D
    187         .S CTR=CTR+1,@MDL=$P(MDTSTR,"^",CTR)
    188         S MDVST=""
    189         ; If previous TIU document exists, quit
    190         I MDNOTE Q MDNOTE
    191         I 'MDLOC Q "-1^No Hospital Location."
    192         ; Create new visit, if no vstring
    193         S MDPDT=$$PDT^MDRPCOT1(MDGST)
    194         I 'MDPDT S MDPT=$O(^MDD(703.1,"ASTUDYID",+MDGST,0)),MDPDT=$P($G(^MDD(703.1,+MDPT,0)),U,3)
    195         S:'MDPDT MDPDT=$P(MDVSTR,";",2) ; If No D/T Performed grab visit D/T
    196         I $P(MDVSTR,";",3)="V" S $P(MDVSTR,";",3)="A"
    197         ; Build variables for TIU Call
    198         S MDWP(.05)=1 ; Undicated Status
    199         S MDWP(1405)=+MDCON_";GMR(123," ; Package Reference
    200         S MDWP(70201)=5 ; Default Procedure Summary Code "Machine Resulted"
    201         I MDPDT S MDWP(70202)=MDPDT ; Date/Time Performed
    202         ; File PCE Error message
    203         I MDNVST S MDRESU=$$EN1^MDPCE(MDGST,$P(MDVSTR,";",2),MDPROC,$P(MDVSTR,";",3),"P") I +MDRESU S MDVST=+MDRESU,MDVSTR=$P(MDRESU,"^",2)
    204         I MDNVST&(+MDRESU<0) D FILEMSG(MDGST,"PCE",2,$P(MDRESU,"^",2)) Q MDRESU
    205         ; Create the TIU note stub
    206         S MDNOTE="" D MAKE^TIUSRVP(.MDNOTE,DFN,MDTITL,$P(MDVSTR,";",2),MDLOC,$S(MDVST:MDVST,1:""),.MDWP,MDVSTR,1,1)
    207         I '(+MDNOTE) S $P(MDNOTE,"^")=-1 Q MDNOTE
    208         ; Finalize the transaction
    209         S MDFDA(702,STUDY_",",.06)=+MDNOTE
    210         S MDFDA(702,STUDY_",",.08)=""
    211         S:MDVST>0 MDFDA(702,STUDY_",",.13)=MDVST
    212         D FILE^DIE("","MDFDA")
    213         D UPD^MDKUTLR(STUDY,+MDNOTE)
    214         Q 1
    215         ;
    216 PREV(MDC,MDS)   ; [Function] Return the Previous TIU document.
    217         N MDNEWV,MDDOC,MDTRAN,MDTIUER,MDTST
    218         S (MDDOC,MDNEWV,MDTRAN,MDTIUER,MDTST)="" K ^TMP("MDTIUST",$J)
    219         F  S MDTRAN=$O(^MDD(702,"ACON",MDC,MDTRAN)) Q:'MDTRAN  D  Q:'MDTRAN
    220         .I $P(^MDD(702,MDTRAN,0),U,6) D
    221         ..D EXTRACT^TIULQ($P(^MDD(702,MDTRAN,0),U,6),"^TMP(""MDTIUST"",$J)",MDTIUER,".01;.05;1406") Q:+MDTIUER
    222         ..S MDTST=$G(^TMP("MDTIUST",$J,$P(^MDD(702,MDTRAN,0),U,6),.05,"E"))
    223         ..I MDTST'="UNDICTATED"&(MDTST'="UNSIGNED") K ^TMP("MDTIUST",$J) Q
    224         ..I MDTST="UNSIGNED"&'($G(^TMP("MDTIUST",$J,$P(^MDD(702,MDTRAN,0),U,6),1406,"I"))) K ^TMP("MDTIUST",$J) Q
    225         ..S MDDOC=$P(^MDD(702,MDTRAN,0),U,6),MDNEWV=$P(^MDD(702,MDTRAN,0),U,7)
    226         ..Q:'MDS
    227         ..S MDFDA(702,MDS_",",.06)=MDDOC
    228         ..S MDFDA(702,MDS_",",.07)=MDNEWV
    229         ..D FILE^DIE("","MDFDA")
    230         ..S MDTRAN=""
    231         Q MDDOC
    232         ;
     1MDRPCOT ; HOIFO/DP/NCA - Object RPCs (TMDTransaction) ;12/5/02  15:33
     2 ;;1.0;CLINICAL PROCEDURES;**5**;Apr 01, 2004;Build 1
     3 ; Integration Agreements:
     4 ; IA# 2693 [Subscription] TIU Extractions.
     5 ; IA# 2944 [Subscription] Calls to TIUSRVR1.
     6 ; IA# 3535 [Subscription] Calls to TIUSRVP.
     7 ; IA# 10104 [Supported] Routine XLFSTR calls
     8ADDMSG ; [Procedure] Add message to transaction
     9 N MDIEN,MDIENS,MDRET
     10 Q:'$G(DATA("TRANSACTION"))
     11 Q:$G(DATA("MESSAGE"))=""
     12 S MDIEN=+DATA("TRANSACTION"),MDIENS="+1,"_MDIEN_","
     13 D NOW^%DTC S DATA("DATE")=% K %
     14 S MDFDA(702.091,MDIENS,.01)=+$O(^MDD(702,+MDIEN,.091,"A"),-1)+1
     15 S MDFDA(702.091,MDIENS,.02)=DATA("DATE")
     16 S MDFDA(702.091,MDIENS,.03)=$G(DATA("PKG"),"UNKNOWN")
     17 S MDFDA(702.091,MDIENS,.09)=DATA("MESSAGE")
     18 D UPDATE^DIE("","MDFDA","MDRET")
     19 Q
     20 ;
     21DELETE ; [Procedure] Delete Study
     22 ; Sets @RESULTS@(0)="-1^Reason for not deleting" or "1^Study Deleted"
     23 ;
     24 N MDHOLD,MDNOTE,MDRES,MDSIEN
     25 S (MDHOLD,MDSIEN)=+DATA,MDRES=0,MDNOTE=""
     26 S:+$P(^MDD(702,MDSIEN,0),U,6) MDNOTE=$P(^MDD(702,MDSIEN,0),U,6)
     27 I "13"[$P(^MDD(702,MDSIEN,0),U,9) S @RESULTS@(0)="-1^Can't Delete TIU Note from a "_$$GET1^DIQ(702,MDSIEN,.09,"E")_" Study." Q
     28 I "5"[$P(^MDD(702,MDSIEN,0),U,9) S MDCANR=$$CANCEL^MDHL7B(MDHOLD) I MDCANR<1 S @RESULTS@(0)="-1^"_$P(MDCANR,"^",2) Q
     29 I +MDNOTE S MDRES="" D DELETE^TIUSRVP(.MDRES,MDNOTE)
     30 I MDRES D  Q
     31 .D STATUS(MDSIEN_",",2,$P(MDRES,"^",2))
     32 .S DATA("TRANSACTION")=MDSIEN,DATA("PKG")="TIU"
     33 .S DATA("MESSAGE")=$P(MDRES,"^",2) D ADDMSG
     34 .S @RESULTS@(0)="-1^"_$P(MDRES,"^",2)
     35 .Q
     36 E  D
     37 .S MDFDA(702,DATA_",",.01)=""
     38 .D FILE^DIE("","MDFDA")
     39 .N DA,DIK S DA=+MDSIEN,DIK="^MDD(702," D ^DIK
     40 .S @RESULTS@(0)="1^Study Deleted."
     41 .Q
     42 Q
     43 ;
     44FILEMSG(STUDY,MDPKG,MDSTAT,MDMSG) ; [Procedure] File Study Status and Message.
     45 S DATA("TRANSACTION")=STUDY,DATA("PKG")=MDPKG
     46 S DATA("MESSAGE")=$P(MDMSG,"^",2)
     47 D STATUS(STUDY_",",MDSTAT,$P(MDMSG,"^",2)),ADDMSG
     48 Q
     49 ;
     50FILES ; [Procedure] Add/remove an attachment to this transaction
     51 NEW MDFDA,MDIEN,MDIENS,MDRET,P1,P2,P3,P4
     52 S P1=$P(DATA,U,1),P2=$P(DATA,U,2),P3=$P(DATA,U,3),P4=$P(DATA,U,4)
     53 S MDIEN=0
     54 ; Look for file (All comparisons done on lower case values)
     55 F  S MDIEN=$O(^MDD(702,P1,.1,MDIEN)) Q:'MDIEN  D  Q:X=P3
     56 .S X=$$LOW^XLFSTR($G(^MDD(702,P1,.1,MDIEN,.1)))
     57 I MDIEN&P4 S @RESULTS@(0)="1^File already assigned" Q
     58 I 'MDIEN&'P4 S @RESULTS@(0)="1^File not assigned" Q
     59 I P4 D  Q  ; Add a file
     60 .S MDIENS="+1,"_P1_","
     61 .S MDFDA(702.1,MDIENS,.01)=$O(^MDD(702,P1,.1,"B",""),-1)+1
     62 .S MDFDA(702.1,MDIENS,.02)=$S(P2:"I",1:"U")
     63 .I P2 S MDFDA(702.1,MDIENS,.03)=P2
     64 .S MDFDA(702.1,MDIENS,.1)=P3
     65 .D UPDATE^DIE("","MDFDA","MDIEN")
     66 .S @RESULTS@(0)=+$G(MDIEN(1),-1)
     67 I 'P4 D  Q  ; Remove the file
     68 .S MDFDA(702.1,MDIEN_","_P1_",",.01)="@"
     69 .D FILE^DIE("","MDFDA","MDRET")
     70 .S @RESULTS@(0)=$S($D(MDRET):-1,1:1)
     71 Q
     72 ;
     73GETATT ; [Procedure] Get Attachments
     74 F X=0:0 S X=$O(^MDD(702,DATA,.1,X)) Q:'X  D
     75 .S Y=$O(@RESULTS@(""),-1)+1
     76 .S @RESULTS@(Y)=$P(^MDD(702,DATA,.1,X,0),U,1,3)
     77 .S $P(@RESULTS@(Y),U,4)=$G(^MDD(702,DATA,.1,X,.1))
     78 S @RESULTS@(0)=+$O(@RESULTS@(""),-1)
     79 Q
     80 ;
     81GETERR ; [Procedure] Return list of Imaging Errors
     82 ; DATA = Transaction IEN
     83 F MDX=0:0 S MDX=$O(^MDD(702,DATA,.091,MDX)) Q:'MDX  D
     84 .S MDY=+^MDD(702,DATA,.091,MDX,0)_U,Y=$P(^(0),U,2)
     85 .D D^DIQ S MDY=MDY_Y_U
     86 .S MDY=MDY_$P(^MDD(702,DATA,.091,MDX,0),U,3)_U_$P(^(0),U,9)
     87 .S ^TMP($J,$O(^TMP($J,""),-1)+1)=MDY
     88 S ^TMP($J,0)=+$O(^TMP($J,""),-1)
     89 Q
     90 ;
     91NEWSTAT ; [Procedure] RPC Call to set status
     92 S MDFDA(702,DATA,.09)=TYPE
     93 D FILE^DIE("","MDFDA")
     94 Q
     95 ;
     96RPC(RESULTS,OPTION,DATA,TYPE,FILE,RESREP) ; [Procedure] Main RPC call
     97 N MDCANR,MDCON,MDDOC,MDFDA,MDFN,MDGST,MDHOLD,MDIEN,MDIENS,MDL,MDLOC,MDMSG,MDNEWV,MDNOTE,MDNVST,MDPDT,MDPKG,MDPROC,MDRES,MDRESU,MDRESUL,MDRET,MDS,MDSIEN,MDSTAT,MDSTUDY,MDTITL,MDTIUER,MDTRAN,MDTST,MDTSTR,MDVST,MDVSTR,MDWP,MDX,MDY
     98 S RESULTS=$NA(^TMP($J)) K @RESULTS
     99 D:$T(@OPTION)]"" @OPTION
     100 D:'$D(@RESULTS) BADRPC^MDRPCU("MD TMDTRANSACTION","MDRPCOT",OPTION)
     101 D CLEAN^DILF
     102 Q
     103 ;
     104STATUS(MDIENS,MDSTAT,MDMSG) ; [Procedure] Update transaction status
     105 S MDFDA(702,MDIENS,.08)=$G(MDMSG)
     106 S MDFDA(702,MDIENS,.09)=MDSTAT
     107 D FILE^DIE("","MDFDA")
     108 Q
     109 ;
     110SUBMIT ; [Procedure] Process the Image(s) Submission.
     111 ; Output: -1^Error Message or
     112 ;          1^Successful Message
     113 N MDRESUL,MDSTUDY
     114 S MDSTUDY=+DATA,MDRESUL=""
     115 ; Create New TIU Document
     116 S MDRESUL=$$NEWTIUN(MDSTUDY)
     117 ; File TIU Error messages
     118 ;I +MDRESUL<0 D FILEMSG(MDSTUDY,"TIU",2,MDRESUL) Q MDRESUL
     119 I +MDRESUL<0 D  Q
     120 .D FILEMSG(MDSTUDY,"TIU",2,MDRESUL)
     121 .S @RESULTS@(0)=MDRESUL
     122 ; Submit and export the images
     123 S MDRESUL=$$SUBMIT^MDRPCOT1(MDSTUDY)
     124 ; File message
     125 D FILEMSG(MDSTUDY,"IMAGING",$S(+MDRESUL>0:+MDRESUL,1:2),MDRESUL)
     126 S @RESULTS@(0)=MDRESUL
     127 Q
     128 ;
     129VIEWTIU ; [Procedure] VIew the associated tiu document
     130 I '$P(^MDD(702,+DATA,0),U,6) D  Q
     131 .S @RESULTS@(0)="NO TIU NOTE FOR THIS STUDY"
     132 D TGET^TIUSRVR1(.RESULTS,+$P(^MDD(702,+DATA,0),U,6))
     133 Q
     134 ;
     135GETDATA(STUDY) ; [Function] Return the Necessary data for creating a TIU note.
     136 ; Return: Patient DFN_"^"_TIU title_"^"_Hospital Location_"^"_TIU Note
     137 ;         IEN_"^"_Consult #_"^"_CP Definition IEN_"^"_Visit String_"^"
     138 ;         New Visit Flag
     139 ;         or
     140 ;         -1^Error Message
     141 N DFN,MDCON,MDFN,MDIEN,MDIENS,MDLOC,MDNEWV,MDNOTE,MDNVST,MDPROC,MDVSTR,MDTITL,MDX,MDTST
     142 S MDIEN=+STUDY,MDIENS=MDIEN_",",MDNVST=0
     143 I $$GET1^DIQ(702,MDIENS,.01)="" Q "-1^No such study entry."
     144 ; Get DFN
     145 S DFN=$$GET1^DIQ(702,MDIEN,.01,"I")
     146 I 'DFN Q "-1^No DFN."
     147 ; Get CP Def
     148 S MDPROC=$$GET1^DIQ(702,MDIEN,.04,"I")
     149 I 'MDPROC Q "-1^No CP Def."
     150 ; Get Consult
     151 S MDCON=$$GET1^DIQ(702,MDIEN,.05,"I")
     152 I 'MDCON Q "-1^No Consult #."
     153 ; Get TIU Note Title
     154 S MDTITL=$$GET1^DIQ(702.01,+MDPROC_",",.04,"I")
     155 I 'MDTITL Q "-1^No TIU Note Title."
     156 S MDVSTR=$$GET1^DIQ(702,MDIEN,.07)
     157 I MDVSTR=""  Q "-1^No Visit String."
     158 I $L(MDVSTR,";")=1 S MDNVST=1,MDVSTR=";"_MDVSTR ; If new visit is selected
     159 ; MDLOC is Hospital Location
     160 I MDVSTR'="" D
     161 .S MDVSTR=$$GETVSTR^MDRPCOT1(DFN,MDVSTR,MDPROC,$$GET1^DIQ(702,MDIEN,.02,"I"))
     162 .S MDLOC=$P(MDVSTR,";",1)
     163 ; Does TIU doc already exist?
     164 I $$GET1^DIQ(702,MDIEN,.06,"I") Q DFN_"^"_MDTITL_"^"_MDLOC_"^"_+$$GET1^DIQ(702,MDIEN,.06,"I")_"^"_MDCON_"^"_MDPROC_"^"_MDVSTR_"^"_MDNVST
     165 ; Does TIU doc exist for previous transaction of this consult?
     166 I MDCON S MDNOTE=$$PREV(MDCON,MDIEN)
     167 Q DFN_"^"_MDTITL_"^"_MDLOC_"^"_+MDNOTE_"^"_MDCON_"^"_MDPROC_"^"_MDVSTR_"^"_MDNVST
     168 ;
     169NEWTIUN(STUDY) ; [Function] Create a new TIU for transaction
     170 ; Input: STUDY - IENS of CP study entry
     171 ; Return: TIU Document IEN
     172 N CTR,DFN,MDCON,MDFDA,MDGST,MDL,MDLOC,MDNOTE,MDPDT,MDPROC,MDRESU,MDTITL,MDTSTR,MDVST,MDVSTR,MDWP S CTR=0,MDGST=+STUDY,MDRESU=""
     173 ; Get data for TIU Note Creation
     174 S (MDTSTR,MDRESU)=$$GETDATA(MDGST)
     175 ; File Error message
     176 I +MDRESU<0 D FILEMSG(MDGST,"CP",2,MDRESU) Q MDRESU
     177 I $G(MDTSTR)="" Q "-1^No Data to Create TIU Document"
     178 F MDL="DFN","MDTITL","MDLOC","MDNOTE","MDCON","MDPROC","MDVSTR","MDNVST" D
     179 .S CTR=CTR+1,@MDL=$P(MDTSTR,"^",CTR)
     180 S MDVST=""
     181 ; If previous TIU document exists, quit
     182 I MDNOTE Q MDNOTE
     183 I 'MDLOC Q "-1^No Hospital Location."
     184 ; Create new visit, if no vstring
     185 S MDPDT=$$PDT^MDRPCOT1(MDGST)
     186 S:'MDPDT MDPDT=$P(MDVSTR,";",2) ; If No D/T Performed grab visit D/T
     187 ; Build variables for TIU Call
     188 S MDWP(.05)=1 ; Undicated Status
     189 S MDWP(1405)=+MDCON_";GMR(123," ; Package Reference
     190 I MDPDT S MDWP(70202)=MDPDT ; Date/Time Performed
     191 ; File PCE Error message
     192 I MDNVST S MDRESU=$$EN1^MDPCE(MDGST,MDPDT,MDPROC,$P(MDVSTR,";",3),"P") I +MDRESU S MDVST=+MDRESU,MDVSTR=$P(MDRESU,"^",2)
     193 I MDNVST&(+MDRESU<0) D FILEMSG(MDGST,"PCE",2,$P(MDRESU,"^",2)) Q MDRESU
     194 ; Create the TIU note stub
     195 S MDNOTE="" D MAKE^TIUSRVP(.MDNOTE,DFN,MDTITL,$P(MDVSTR,";",2),MDLOC,$S(MDVST:MDVST,1:""),.MDWP,MDVSTR,1,1)
     196 I '(+MDNOTE) S $P(MDNOTE,"^")=-1 Q MDNOTE
     197 ; Finalize the transaction
     198 S MDFDA(702,STUDY_",",.06)=+MDNOTE
     199 S MDFDA(702,STUDY_",",.08)=""
     200 D FILE^DIE("","MDFDA")
     201 Q 1
     202 ;
     203PREV(MDC,MDS) ; [Function] Return the Previous TIU document.
     204 N MDNEWV,MDDOC,MDTRAN,MDTIUER,MDTST
     205 S (MDDOC,MDNEWV,MDTRAN,MDTIUER,MDTST)="" K ^TMP("MDTIUST",$J)
     206 F  S MDTRAN=$O(^MDD(702,"ACON",MDC,MDTRAN)) Q:'MDTRAN  D  Q:'MDTRAN
     207 .I $P(^MDD(702,MDTRAN,0),U,6) D
     208 ..D EXTRACT^TIULQ($P(^MDD(702,MDTRAN,0),U,6),"^TMP(""MDTIUST"",$J)",MDTIUER,".01;.05;1406") Q:+MDTIUER
     209 ..S MDTST=$G(^TMP("MDTIUST",$J,$P(^MDD(702,MDTRAN,0),U,6),.05,"E"))
     210 ..I MDTST'="UNDICTATED"&(MDTST'="UNSIGNED") K ^TMP("MDTIUST",$J) Q
     211 ..I MDTST="UNSIGNED"&'($G(^TMP("MDTIUST",$J,$P(^MDD(702,MDTRAN,0),U,6),1406,"I"))) K ^TMP("MDTIUST",$J) Q
     212 ..S MDDOC=$P(^MDD(702,MDTRAN,0),U,6),MDNEWV=$P(^MDD(702,MDTRAN,0),U,7)
     213 ..Q:'MDS
     214 ..S MDFDA(702,MDS_",",.06)=MDDOC
     215 ..S MDFDA(702,MDS_",",.07)=MDNEWV
     216 ..D FILE^DIE("","MDFDA")
     217 ..S MDTRAN=""
     218 Q MDDOC
     219 ;
Note: See TracChangeset for help on using the changeset viewer.