Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: BEHODC6

BEHODC6.m

Go to the documentation of this file.
  1. BEHODC6 ;MSC/IND/MGH - TIU Dictation Support ;20-Mar-2007 13:48;DKM
  1. ;;1.1;BEH COMPONENTS;**001001**;Mar 20, 2007
  1. ;=================================================================
  1. ;Routine processes message from PACS system for notes and stores them
  1. ;into TIU. The message is sent in an HL7 message with each line of the note
  1. ;a different OBX. The note IEN is being sent in the message
  1. ;=====================================================================
  1. ;
  1. EN ;EP - Entry Point for Incoming Message Array in MSG
  1. K MSG,ERRTX
  1. N X,Y,EVNDT,TIUDA,TIUERR,TIUHDR,TIUPRM0,TIUPRM1,TIUI,J,BEHAPP,BEHRTN,BEHINST,BEHBID
  1. N SSN,BEHSSN,BEHDPT,BEHHRN,BEHNAM,BEHN1,BEHN2,BEHDEF,BDATE1,BDATE2,LASTN1,LASTN2,TIME,X1,X2,BEHTIME
  1. N TIUEDT,TIUAUTH,TIUTITLE,TIUD0,TIUEXAM,TIULOC,TIUX,BEHYR,I,PID,BEHNUM,VADM,TIUCASE
  1. D SETPARM^TIULE S TIUI=0
  1. ;Read the entire message and store into the array MSG
  1. F I=1:1 X HLNEXT Q:HLQUIT'>0 S MSG(I)=HLNODE,J=0 F S J=$O(HLNODE(J)) Q:'J S MSG(I,J)=HLNODE(J)
  1. S BEHNUM=1
  1. MSH ; Decode MSH
  1. K SEG
  1. S X="NOW" D ^%DT S EVNDT=Y
  1. S HLFS=HL("FS"),HLCOMP=$E(HL("ECH")),HLSUB=$E(HL("ECH"),4,4)
  1. I '$D(MSG(BEHNUM)) G KIL
  1. S X=$G(MSG(BEHNUM)),SEG("MSH")=X,BEHAPP=""
  1. I $E(X,1,3)'="MSH" S ERRTX="MSH not first record" D BOTH^BEHODC8(DFN,EVNDT,ERRTX) G KIL
  1. S BEHAPP=$P(MSG(BEHNUM),HLFS,4) I BEHAPP="" G KIL
  1. S BEHNUM=BEHNUM+1
  1. D PROCESS^BEHODC7
  1. Q
  1. CVT ; Convert to FM date
  1. Q:DATE=""
  1. S BEHYR=$E(DATE,1,4)-1700,TIME=+$E(DATE,9,$L(DATE))
  1. S DATE=BEHYR_$E(DATE,5,8)
  1. I TIME,$E(TIME,1,2)=24 S X1=DATE,X2=1 D C^%DTC S DATE=X,TIME="0001"
  1. K X1,X2
  1. S DATE=DATE_$S(TIME:"."_TIME,1:"")
  1. Q
  1. PID ;EP - Check PID Need HRN
  1. ;Patient must match
  1. S SEG("PID")=X
  1. S BEHHRN=$P(X,HLFS,3)
  1. S BEHDPT=$P(X,HLFS,4)
  1. S BEHNAM=$P(X,HLFS,6),BEHSSN=$P(X,HLFS,20)
  1. I 'BEHDPT S ERRTX="Patient ien"_BEHDPT_" not found in patient file. Please check data and resend." D BOTH^BEHODC8(DFN,EVNDT,ERRTX) Q
  1. S DFN=BEHDPT
  1. D PID^VADPT6 S PID=$G(VA("PID")),BEHBID=$G(VA("BID")) K VA
  1. D DEM^VADPT
  1. D CHECK
  1. Q
  1. CHECK ;Make checks on last name
  1. S LASTN1=$P(BEHNAM,"^"),LASTN2=$P(VADM(1),",")
  1. S BEHN1=$TR(LASTN1,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. S BEHN2=$TR(LASTN2,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. I BEHN1'=BEHN2 S ERRTX="Patient's last names do not match. "_$$AGTEXT^BEHODC7()_" has "_BEHN2_" and the COTs has "_BEHN1 D BOTH^BEHODC8(DFN,EVNDT,ERRTX)
  1. Q
  1. KIL ;EP - Kill Variables
  1. S DFN=""
  1. K MSG,BEHNUM,DATE,TIUAUTH,TIUDA,TIUEDT,TIUERR,TIUI,TIUTITLE,SEG
  1. Q