- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/TEXT_INTEGRATION_UTILITIES-GMRP-TIU/TIUHL7U1.m
r613 r623 1 TIUHL7U1 ; SLC/AJB - TIUHL7 Utilities; March 23, 2005 2 ;;1.0;TEXT INTEGRATION UTILITIES;**200,228**;Jun 20, 1997 3 Q 4 ACK(CODE,ERLOC,TIUDA) ; 5 N HLA,RESULT,TIUMID,TIUREC,TIUSND 6 S HLA("HLA",1)="MSA"_HL("FS")_CODE_HL("FS")_HL("MID")_HL("FS")_$G(HL("RAN"))_HL("FS")_$G(HL("SAN")) 7 S TIUMID=$G(HL("MID")),TIUREC=HL("RAN"),TIUSND=HL("SAN") 8 I CODE="AR" D 9 . N TIUCNT 10 . S TIUCNT=0 F S TIUCNT=$O(@ERLOC@("MSGERR",TIUCNT)) Q:'+TIUCNT S HLA("HLA",(TIUCNT+1))=@ERLOC@("MSGERR",TIUCNT) 11 . I +$E($G(TIU("SSN")),1,5) D SNDALRT("TIUHL7 rejected an incoming HL7 message from "_TIUSND_" (Msg ID "_TIUMID_".") 12 I CODE="AA" D 13 . S HLA("HLA",2)="ERR"_TIUFS_TIUFS_TIUFS_TIUFS_+$G(TIUDA)_TIUCS_"Document creation successful." 14 I HL("SAN")="HTAPPL" D M @TIU("XTMP")@("MSGRESULT")=HLA("HLS") Q 15 . N HL,HLL,HLP,TIUDNS,TIUEVT,TIUFAC,TIULLNK,TIUSUB 16 . M HLA("HLS")=HLA("HLA") K HLA("HLA") 17 . S TIUEVT="TIUHL7 HTAPPL ACK EVT",TIUSUB="TIUHL7 HTAPPL ACK SUB" 18 . I '+$$LU^TIUHL7U1(101,TIUEVT) D SNDALRT("Unable to resolve Event Protocol for ACK to "_TIUSND_".") 19 . I '+$$LU^TIUHL7U1(101,TIUSUB) D SNDALRT("Unable to resolve Subscriber Protocol for ACK to "_TIUSND_".") 20 . S TIUFAC=$P(TIUMSG(1),TIUFS,4),TIUDNS=$P(TIUFAC,TIUCS,2) ; set facility & DNS address 21 . S TIULLNK(1)=$$LU^TIUHL7U1(870,$$UP^XLFSTR(TIUDNS),,,"DNS"),TIULLNK(2)=$$LU^TIUHL7U1(870,$$LOW^XLFSTR(TIUDNS),,,"DNS") 22 . S TIULLNK=$S(+TIULLNK(1):TIULLNK(1),+TIULLNK(2):TIULLNK(2),1:0) I '+TIULLNK D SNDALRT("Unable to resolve DNS for ACK to "_TIUSND_".") 23 . S TIULLNK=$$GET1^DIQ(870,TIULLNK,.01) ; get logical link associated with DNS 24 . D INIT^HLFNC2(TIUEVT,.HL) I +$G(HL) Q 25 . S HLP("SUBSCRIBER")="^^^^"_TIUFAC 26 . S HLL("LINKS",1)=TIUSUB_U_TIULLNK 27 . D GENERATE^HLMA(TIUEVT,"LM",1,.TIURSLT,"",.HLP) 28 D GENACK^HLMA1(HL("EID"),HLMTIENS,HL("EIDS"),"LM",1,.TIURSLT) 29 M @TIU("XTMP")@("MSGRESULT")=HLA("HLA") 30 Q 31 SNDALRT(MSG) ; 32 N XQA,XQAMSG 33 S MSG("RECEIVER")=$P($$GETAPP^HLCS2(TIUREC),U),MSG("SENDER")=$P($$GETAPP^HLCS2(TIUSND),U) 34 I '+$L(MSG("RECEIVER")),'+$L(MSG("SENDER")) Q 35 I +$L(MSG("RECEIVER")) S XQA("G."_MSG("RECEIVER"))="" 36 I +$L(MSG("SENDER")) S XQA("G."_MSG("SENDER"))="" 37 S XQAMSG=MSG 38 I $$SETUP1^XQALERT 39 Q 40 AUDIT(TIUDA,TIUCKSM0,TIUCKSM1) ; Update audit trail 41 N DA,DIC,DIE,DLAYGO,DR,X,Y 42 S X=""""_"`"_TIUDA_"""",(DIC,DLAYGO)=8925.5,DIC(0)="FLX" D ^DIC Q:+Y'>0 43 S DIE=DIC,DR=".02////"_$$NOW^TIULC_";.03////"_TIU("EBDA")_";.04////"_TIUCKSM0_";.05////"_TIUCKSM1 44 S DA=+Y D ^DIE 45 Q 46 CANEDIT(DA) ; check whether or not document is released 47 Q $S(+$P($G(^TIU(8925,+DA,0)),U,5)<4:1,1:0) 48 CLASS(CLNAME) ; 49 N TIUY S TIUY=+$O(^TIU(8925.1,"B",CLNAME,0)) 50 I +TIUY>0,$S($P($G(^TIU(8925.1,+TIUY,0)),U,4)="CL":0,$P($G(^(0)),U,4)="DC":0,1:1) S TIUY=0 51 Q TIUY 52 CLEAN ; removes messages older than 7 days 53 N TIUDT 54 S TIUDT=0 55 F S TIUDT=$O(^XTMP("TIUHL7",TIUDT)) Q:'+TIUDT D 56 . I $$FMDIFF^XLFDT($$NOW^XLFDT,TIUDT)'<7 K ^XTMP("TIUHL7",TIUDT) 57 Q 58 COMPARE(NAME1,NAME2) ; compare first and last names only 59 N NAME,TIUX,TIUY 60 S TIUY=0 61 I $L(NAME1,",")=1,$L(NAME2,",")=1 S:NAME1=NAME2 TIUY=1 Q TIUY 62 S NAME("L1")=$P(NAME1,","),NAME("F1")=$P(NAME1,",",2),NAME("F1")=$P(NAME("F1")," ") 63 S NAME("L2")=$P(NAME2,","),NAME("F2")=$P(NAME2,",",2),NAME("F2")=$P(NAME("F2")," ") 64 I NAME("L1")=NAME("L2"),NAME("F1")=NAME("F2") S TIUY=1 65 Q TIUY 66 DELDOC(TIUDA) ; 67 N ERR 68 D DELETE^TIUSRVP(.ERR,TIUDA,"",1) 69 Q 70 ERR(TIUSEG,TIUP,TIUNUM,TIUTXT) ; 71 S TIU("EC")=TIU("EC")+1 72 S @TIUNAME@("MSGERR",TIU("EC"))="ERR"_TIUFS_TIUSEG_TIUFS_TIUP_TIUFS_TIUFS_TIUNUM_TIUCS_TIUTXT 73 Q 74 GETADMIT(DFN,TIUDT) ; 75 N TIUCNT,TIULIST,TIUY S (TIUCNT,TIUY)=0 76 I '+$G(TIUDT) Q TIUY 77 D:+$G(DFN) ADMITLST^ORWPT(.TIULIST,DFN) 78 I $D(TIULIST) D 79 . S TIULIST="" F S TIULIST=$O(TIULIST(TIULIST)) Q:'+TIULIST I $P($P(TIULIST(TIULIST),U),".")=$P(TIUDT,".") S TIUCNT=TIUCNT+1,TIUCNT(TIULIST)=TIULIST(TIULIST) 80 . I TIUCNT=0 D ERR("ERR","44","0000.00","ADMISSION not found for "_$$FMTE^XLFDT(TIUDT)_".") Q 81 . I TIUCNT=1 S TIULIST="",TIULIST=$O(TIUCNT(TIULIST)),TIU("VSTR")=$P(TIULIST(TIULIST),U,2)_";"_$P(TIULIST(TIULIST),U)_";H",TIUY=1 Q 82 . I +TIU("HLOC") D 83 . . S TIULIST="" F S TIULIST=$O(TIUCNT(TIULIST)) Q:'+TIULIST!(+TIUY) I $P(TIUCNT(TIULIST),U,2)=TIU("HLOC") S TIU("VSTR")=TIU("HLOC")_";"_$P(TIUCNT(TIULIST),U)_";H",TIUY=1 84 Q TIUY 85 GETDIV(USER) ; 86 N TIUY 87 D DIV4^XUSER(.TIUY,USER) I +$D(TIUY) S TIUY="",TIUY=$O(TIUY(TIUY)) 88 I +$G(TIUY)'>0 S TIUY=$$GET1^DIQ(8989.3,1,217,"I") 89 Q TIUY 90 GETVISIT(DFN,TIUDT) ; 91 N TIUCNT,TIULIST,TIUY 92 S (TIUCNT,TIUY)=0 93 I '+$G(TIUDT) Q TIUY 94 D:+$G(DFN) VST1^ORWCV(.TIULIST,DFN,$P(TIUDT,"."),$$FMADD^XLFDT(TIUDT,1),1) 95 I $D(TIULIST) D 96 . S TIULIST="" F S TIULIST=$O(TIULIST(TIULIST)) Q:'+TIULIST I $P($P(TIULIST(TIULIST),U,2),".")=$P(TIUDT,".") S TIUCNT=TIUCNT+1,TIUCNT(TIULIST)=TIULIST(TIULIST) 97 . I TIUCNT=1 S TIULIST="",TIULIST=$O(TIUCNT(TIULIST)),TIU("VSTR")=$P($P(TIULIST(TIULIST),U),";",3)_";"_$P(TIULIST(TIULIST),U,2)_";"_$S(TIU("AVAIL")="AV":"E",1:"A"),TIUY=1 Q 98 . I +TIU("HLOC") D 99 . . S TIULIST="" F S TIULIST=$O(TIUCNT(TIULIST)) Q:'+TIULIST!(+TIUY) I $P($P(TIULIST(TIULIST),U),";",3)=TIU("HLOC") S TIU("VSTR")=TIU("HLOC")_";"_$P(TIULIST(TIULIST),U,2)_";"_$S(TIU("AVAIL")="AV":"E",1:"A"),TIUY=1 100 Q TIUY 101 LU(FILE,NAME,FLAGS,SCREEN,INDEXES) ; 102 Q $$FIND1^DIC(FILE,"",$G(FLAGS),NAME,$G(INDEXES),$G(SCREEN),"TIUERR") 103 MEMBEROF(TITLE,CLASS) ; 104 N TIUY S TIUY=0 105 S CLASS=+$$CLASS(CLASS) Q:+CLASS'>0 TIUY 106 S TITLE=$$LU(8925.1,TITLE,"X","I $P(^(0),U,4)=""DOC""") Q:+TITLE'>0 TIUY 107 S TIUY=+$$ISA^TIULX(TITLE,CLASS) 108 Q TIUY 109 PNAME(NAME) ; 110 N LAST,FIRST 111 S LAST=$P(NAME,","),FIRST=$E($P(NAME,",",2),1) 112 Q LAST_","_FIRST 113 REMESC(TIUSTR) ; 114 ; Remove Escape Characters from HL7 Message Text 115 ; Escape Sequence codes: 116 ; F = field separator (TIUFS) 117 ; S = component separator (TIUCS) 118 ; R = repitition separator (TIURS) 119 ; E = escape character (TIUES) 120 ; T = subcomponent separator (TIUSS) 121 N I1,I2,J1,J2,K,TIUCHR,TIUREP,VALUE 122 F TIUCHR="F","S","R","E","T" S TIUREP(TIUES_TIUCHR_TIUES)=$S(TIUCHR="F":TIUFS,TIUCHR="S":TIUCS,TIUCHR="R":TIURS,TIUCHR="E":TIUES,TIUCHR="T":TIUSS) 123 S TIUSTR=$$REPLACE^XLFSTR(TIUSTR,.TIUREP) 124 F S I1=$P(TIUSTR,TIUES_"X") Q:$L(I1)=$L(TIUSTR) D 125 .S I2=$P(TIUSTR,TIUES_"X",2,99) 126 .S J1=$P(I2,TIUES) Q:'$L(J1) 127 .S J2=$P(I2,TIUES,2,99) 128 .S VALUE=$$BASE^XLFUTL($$UP^XLFSTR(J1),16,10) 129 .S K=$S(VALUE>255:"?",VALUE<32!(VALUE>127&(VALUE<160)):"",1:$C(VALUE)) 130 .S TIUSTR=I1_K_J2 131 Q TIUSTR 132 SIGNDOC(TIUDA) ; 133 N TIUDEL 134 I $G(TIU("COMP"))="LA",'+TIU("EC") D 135 . I '+$G(TIU("SIGNED")),'+$G(TIU("CSIGNED")) D Q 136 . . I TIU("AVAIL")'="AV" D DELDOC(TIUDA),ERR("TIU","","2100.040","SIGNATURE DATE[TIME] missing from HL7 message & availability not 'AV'; document has been deleted.") 137 . I +TIU("SIGNED") D 138 . . N TIUACT,TIUAUTH,TIUES,TIUSTAT S TIUACT="SIGNATURE",TIUAUTH=$$CANDO^TIULP(TIUDA,TIUACT,TIU("AUDA")) I '+TIUAUTH D 139 . . . D ERR("TIU","15","0000.000",$P(TIUAUTH,U,2)) I TIU("AVAIL")="AV" Q 140 . . . S TIUDEL=1 D ERR("TIU","","0000.000","Legal authentication failed & availability not 'AV'; document has been deleted.") 141 . . I '+$G(TIUDEL) S TIUES=1_U_$$GET1^DIQ(200,TIU("AUDA"),20.2)_U_$$GET1^DIQ(200,TIU("AUDA"),20.3) 142 . . I '+$G(TIUDEL) D ES^TIUHL7U2(TIUDA,TIUES,"",TIU("AUDA")) 143 . . I '+$G(TIUDEL) S TIUSTAT=$P($G(^TIU(8925,TIUDA,0)),U,5) I TIUSTAT<6,TIU("AVAIL")'="AV" D 144 . . . S TIUDEL=1 D ERR("TIU","","0000.000","Legal authentication failed & availability not 'AV'; document has been deleted.") 145 . I +TIU("CSIGNED") D 146 . . N TIUACT,TIUAUTH,TIUES,TIUSTAT S TIUACT="COSIGNATURE",TIUAUTH=$$CANDO^TIULP(TIUDA,TIUACT,TIU("CSDA")) I '+TIUAUTH D 147 . . . D ERR("TIU","29","0000.000",$P(TIUAUTH,U,2)) I TIU("AVAIL")="AV" Q 148 . . . S TIUDEL=1 D ERR("TIU","29","0000.000","Legal authentication failed & availability not 'AV'; document has been deleted.") 149 . . I '+$G(TIUDEL) S TIUES=1_U_$$GET1^DIQ(200,TIU("CSDA"),20.2)_U_$$GET1^DIQ(200,TIU("CSDA"),20.3) 150 . . I '+$G(TIUDEL) D ES^TIURS(TIUDA,TIUES,"",TIU("CSDA")) 151 . . I '+$G(TIUDEL) S TIUSTAT=$P($G(^TIU(8925,TIUDA,0)),U,5) I TIUSTAT'=7,TIU("AVAIL")'="AV" D 152 . . . S TIUDEL=1 D ERR("TIU","29","0000.000","Legal authentication failed & availability not 'AV'; document has been deleted.") 153 I +$G(TIUDEL) D DELDOC(TIUDA) 154 Q 1 TIUHL7U1 ; SLC/AJB - TIUHL7 Utilities; March 23, 2005 2 ;;1.0;TEXT INTEGRATION UTILITIES;**200**;Jun 20, 1997 3 Q 4 ACK(CODE,ERLOC,TIUDA) ; 5 N HLA,RESULT 6 S HLA("HLA",1)="MSA"_HL("FS")_CODE_HL("FS")_HL("MID")_HL("FS")_$G(HL("RAN"))_HL("FS")_$G(HL("SAN")) 7 I CODE="AR" D 8 . N TIUCNT 9 . S TIUCNT=0 F S TIUCNT=$O(@ERLOC@("MSGERR",TIUCNT)) Q:'+TIUCNT S HLA("HLA",(TIUCNT+1))=@ERLOC@("MSGERR",TIUCNT) 10 . D SNDALRT 11 I CODE="AA" D 12 . S HLA("HLA",2)=+$G(TIUDA)_TIUCS_"Document creation successful." 13 D GENACK^HLMA1(HL("EID"),HLMTIENS,HL("EIDS"),"LM",1,.RESULT) 14 M @TIU("XTMP")@("MSGRESULT")=HLA("HLA") 15 Q 16 AUDIT(TIUDA,TIUCKSM0,TIUCKSM1) ; Update audit trail 17 N DIC,DIE,DA,DR,X,Y 18 S X=""""_"`"_TIUDA_"""",(DIC,DLAYGO)=8925.5,DIC(0)="FLX" D ^DIC Q:+Y'>0 19 S DIE=DIC,DR=".02////"_$$NOW^TIULC_";.03////"_TIU("EBDA")_";.04////"_TIUCKSM0_";.05////"_TIUCKSM1 20 S DA=+Y D ^DIE 21 Q 22 CANEDIT(DA) ; check whether or not document is released 23 Q $S(+$P($G(^TIU(8925,+DA,0)),U,5)<4:1,1:0) 24 CLASS(CLNAME) ; 25 N TIUY S TIUY=+$O(^TIU(8925.1,"B",CLNAME,0)) 26 I +TIUY>0,$S($P($G(^TIU(8925.1,+TIUY,0)),U,4)="CL":0,$P($G(^(0)),U,4)="DC":0,1:1) S TIUY=0 27 Q TIUY 28 CLEAN ; removes messages older than 7 days 29 N TIUDT 30 S TIUDT=0 31 F S TIUDT=$O(^XTMP("TIUHL7",TIUDT)) Q:'+TIUDT D 32 . I $$FMDIFF^XLFDT($$NOW^XLFDT,TIUDT)'<7 K ^XTMP("TIUHL7",TIUDT) 33 Q 34 COMPARE(NAME1,NAME2) ; compare first and last names only 35 N NAME,TIUX,TIUY 36 S TIUY=0 37 I $L(NAME1,",")=1,$L(NAME2,",")=1 S:NAME1=NAME2 TIUY=1 Q TIUY 38 S NAME("L1")=$P(NAME1,","),NAME("F1")=$P(NAME1,",",2),NAME("F1")=$P(NAME("F1")," ") 39 S NAME("L2")=$P(NAME2,","),NAME("F2")=$P(NAME2,",",2),NAME("F2")=$P(NAME("F2")," ") 40 I NAME("L1")=NAME("L2"),NAME("F1")=NAME("F2") S TIUY=1 41 Q TIUY 42 DELDOC(TIUDA) ; 43 N ERR 44 D DELETE^TIUSRVP(.ERR,TIUDA,"",1) 45 Q 46 ERR(TIUSEG,TIUP,TIUNUM,TIUTXT) ; 47 S TIU("EC")=TIU("EC")+1 48 S @TIUNAME@("MSGERR",TIU("EC"))="ERR"_TIUFS_TIUSEG_TIUFS_TIUP_TIUFS_TIUFS_TIUNUM_TIUCS_TIUTXT 49 Q 50 GETADMIT(DFN,TIUDT) ; 51 N TIUCNT,TIULIST,TIUY S (TIUCNT,TIUY)=0 52 I '+$G(TIUDT) Q TIUY 53 D:+$G(DFN) ADMITLST^ORWPT(.TIULIST,DFN) 54 I $D(TIULIST) D 55 . S TIULIST="" F S TIULIST=$O(TIULIST(TIULIST)) Q:'+TIULIST I $P($P(TIULIST(TIULIST),U),".")=$P(TIUDT,".") S TIUCNT=TIUCNT+1,TIUCNT(TIULIST)=TIULIST(TIULIST) 56 . I TIUCNT=0 D ERR("ERR","44","0000.00","ADMISSION not found for "_$$FMTE^XLFDT(TIUDT)_".") Q 57 . I TIUCNT=1 S TIULIST="",TIULIST=$O(TIUCNT(TIULIST)),TIU("VSTR")=$P(TIULIST(TIULIST),U,2)_";"_$P(TIULIST(TIULIST),U)_";H",TIUY=1 Q 58 . I +TIU("HLOC") D 59 . . S TIULIST="" F S TIULIST=$O(TIUCNT(TIULIST)) Q:'+TIULIST!(+TIUY) I $P(TIUCNT(TIULIST),U,2)=TIU("HLOC") S TIU("VSTR")=TIU("HLOC")_";"_$P(TIUCNT(TIULIST),U)_";H",TIUY=1 60 Q TIUY 61 GETDIV(USER) ; 62 N TIUY 63 D DIV4^XUSER(.TIUY,USER) I +$D(TIUY) S TIUY="",TIUY=$O(TIUY(TIUY)) 64 I +$G(TIUY)'>0 S TIUY=$$GET1^DIQ(8989.3,1,217,"I") 65 Q TIUY 66 GETVISIT(DFN,TIUDT) ; 67 N TIUCNT,TIULIST,TIUY 68 S (TIUCNT,TIUY)=0 69 I '+$G(TIUDT) Q TIUY 70 D:+$G(DFN) VST1^ORWCV(.TIULIST,DFN,$P(TIUDT,"."),$$FMADD^XLFDT(TIUDT,1),1) 71 I $D(TIULIST) D 72 . S TIULIST="" F S TIULIST=$O(TIULIST(TIULIST)) Q:'+TIULIST I $P($P(TIULIST(TIULIST),U,2),".")=$P(TIUDT,".") S TIUCNT=TIUCNT+1,TIUCNT(TIULIST)=TIULIST(TIULIST) 73 . I TIUCNT=1 S TIULIST="",TIULIST=$O(TIUCNT(TIULIST)),TIU("VSTR")=$P($P(TIULIST(TIULIST),U),";",3)_";"_$P(TIULIST(TIULIST),U,2)_";"_$S(TIU("AVAIL")="AV":"E",1:"A"),TIUY=1 Q 74 . I +TIU("HLOC") D 75 . . S TIULIST="" F S TIULIST=$O(TIUCNT(TIULIST)) Q:'+TIULIST!(+TIUY) I $P($P(TIULIST(TIULIST),U),";",3)=TIU("HLOC") S TIU("VSTR")=TIU("HLOC")_";"_$P(TIULIST(TIULIST),U,2)_";"_$S(TIU("AVAIL")="AV":"E",1:"A"),TIUY=1 76 Q TIUY 77 LU(FILE,NAME,FLAGS,SCREEN,INDEXES) ; 78 Q $$FIND1^DIC(FILE,"",$G(FLAGS),NAME,$G(INDEXES),$G(SCREEN),"TIUERR") 79 MEMBEROF(TITLE,CLASS) ; 80 N TIUY S TIUY=0 81 S CLASS=+$$CLASS(CLASS) Q:+CLASS'>0 TIUY 82 S TITLE=$$LU(8925.1,TITLE,"X","I $P(^(0),U,4)=""DOC""") Q:+TITLE'>0 TIUY 83 S TIUY=+$$ISA^TIULX(TITLE,CLASS) 84 Q TIUY 85 PNAME(NAME) ; 86 N LAST,FIRST 87 S LAST=$P(NAME,","),FIRST=$E($P(NAME,",",2),1) 88 Q LAST_","_FIRST 89 REMESC(TIUSTR) ; 90 ; Remove Escape Characters from HL7 Message Text 91 ; Escape Sequence codes: 92 ; F = field separator (TIUFS) 93 ; S = component separator (TIUCS) 94 ; R = repitition separator (TIURS) 95 ; E = escape character (TIUES) 96 ; T = subcomponent separator (TIUSS) 97 N I1,I2,J1,J2,K,TIUCHR,TIUREP,VALUE 98 F TIUCHR="F","S","R","E","T" S TIUREP(TIUES_TIUCHR_TIUES)=$S(TIUCHR="F":TIUFS,TIUCHR="S":TIUCS,TIUCHR="R":TIURS,TIUCHR="E":TIUES,TIUCHR="T":TIUSS) 99 S TIUSTR=$$REPLACE^XLFSTR(TIUSTR,.TIUREP) 100 F S I1=$P(TIUSTR,TIUES_"X") Q:$L(I1)=$L(TIUSTR) D 101 .S I2=$P(TIUSTR,TIUES_"X",2,99) 102 .S J1=$P(I2,TIUES) Q:'$L(J1) 103 .S J2=$P(I2,TIUES,2,99) 104 .S VALUE=$$BASE^XLFUTL($$UP^XLFSTR(J1),16,10) 105 .S K=$S(VALUE>255:"?",VALUE<32!(VALUE>127&(VALUE<160)):"",1:$C(VALUE)) 106 .S TIUSTR=I1_K_J2 107 Q TIUSTR 108 SIGNDOC(TIUDA) ; 109 N TIUDEL 110 I $G(TIU("COMP"))="LA",'+TIU("EC") D 111 . I '+$G(TIU("SIGNED")),'+$G(TIU("CSIGNED")) D Q 112 . . I TIU("AVAIL")'="AV" D DELDOC(TIUDA),ERR("TIU","","2100.040","SIGNATURE DATE[TIME] missing from HL7 message & availability not 'AV'; document has been deleted.") 113 . I +TIU("SIGNED") D 114 . . N TIUACT,TIUAUTH,TIUES,TIUSTAT S TIUACT="SIGNATURE",TIUAUTH=$$CANDO^TIULP(TIUDA,TIUACT,TIU("AUDA")) I '+TIUAUTH D 115 . . . D ERR("TIU","15","0000.000",$P(TIUAUTH,U,2)) I TIU("AVAIL")="AV" Q 116 . . . S TIUDEL=1 D ERR("TIU","","0000.000","Legal authentication failed & availability not 'AV'; document has been deleted.") 117 . . I '+$G(TIUDEL) S TIUES=1_U_$$GET1^DIQ(200,TIU("AUDA"),20.2)_U_$$GET1^DIQ(200,TIU("AUDA"),20.3) 118 . . I '+$G(TIUDEL) D ES^TIUHL7U2(TIUDA,TIUES,"",TIU("AUDA")) 119 . . I '+$G(TIUDEL) S TIUSTAT=$P($G(^TIU(8925,TIUDA,0)),U,5) I TIUSTAT<6,TIU("AVAIL")'="AV" D 120 . . . S TIUDEL=1 D ERR("TIU","","0000.000","Legal authentication failed & availability not 'AV'; document has been deleted.") 121 . I +TIU("CSIGNED") D 122 . . N TIUACT,TIUAUTH,TIUES,TIUSTAT S TIUACT="COSIGNATURE",TIUAUTH=$$CANDO^TIULP(TIUDA,TIUACT,TIU("CSDA")) I '+TIUAUTH D 123 . . . D ERR("TIU","29","0000.000",$P(TIUAUTH,U,2)) I TIU("AVAIL")="AV" Q 124 . . . S TIUDEL=1 D ERR("TIU","29","0000.000","Legal authentication failed & availability not 'AV'; document has been deleted.") 125 . . I '+$G(TIUDEL) S TIUES=1_U_$$GET1^DIQ(200,TIU("CSDA"),20.2)_U_$$GET1^DIQ(200,TIU("CSDA"),20.3) 126 . . I '+$G(TIUDEL) D ES^TIURS(TIUDA,TIUES,"",TIU("CSDA")) 127 . . I '+$G(TIUDEL) S TIUSTAT=$P($G(^TIU(8925,TIUDA,0)),U,5) I TIUSTAT'=7,TIU("AVAIL")'="AV" D 128 . . . S TIUDEL=1 D ERR("TIU","29","0000.000","Legal authentication failed & availability not 'AV'; document has been deleted.") 129 I +$G(TIUDEL) D DELDOC(TIUDA) 130 Q 131 SNDALRT ; 132 N TIUCNT,XQA,XQAMSG 133 I '+$G(TIUDPRM(4)) Q 134 F TIUCNT=1:1:$L(TIUDPRM(4),U) S:+$P(TIUDPRM(4),U,TIUCNT) XQA($P(TIUDPRM(4),U,TIUCNT))="" 135 S XQAMSG="TIUHL7 has encountered an error during message ["_HL("MID")_"] processing." 136 D SETUP^XQALERT 137 Q
Note:
See TracChangeset
for help on using the changeset viewer.