Ignore:
Timestamp:
Dec 4, 2009, 8:26:01 PM (14 years ago)
Author:
George Lilly
Message:

WorldVistAEHR overlayed on FOIAVistA

Location:
FOIAVistA/tag/r
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • FOIAVistA/tag/r/CLINICAL_PROCEDURES-MD/MDHL7A.m

    r628 r636  
    1 MDHL7A ; HOIFO/WAA - Routine to Decode HL7 for CP ;9/17/07  08:17
    2  ;;1.0;CLINICAL PROCEDURES;**6**;Apr 01, 2004;Build 102
     1MDHL7A ; HOIFO/WAA - Routine to Decode HL7 for CP ; [05-07-2001 10:38]
     2 ;;1.0;CLINICAL PROCEDURES;;Apr 01, 2004
    33 ; Reference DBIA #10035 [Supported] for DPT calls.
    44 ; Reference DBIA #10106 [Supported] for HLFNC calls.
    55 ; Reference DBIA #10062 [Supported] for VADPT6 calls.
    6  ; Reference DBIA #2701 [Supported] for MPIF001 calls
    7  ; Reference DBIA #10096 [Supported] for ^%ZOSF calls
     6 ; Reference DBIA #2701 [Supported] for MPIF001 Calls
    87EN ; [Procedure] Entry Point for Message Array in MSG
    98 N %,BID,CODE,CPT,DA,DATE,DFN,DIK,DLCO,DTO,DZ,ERRTX,EXAM,EXE,MDFLAG,FIL
     
    1312 N ECODE,MDIEN,MDOBX,NUMZ,PNAM,ZCODE,MDDEV,MDD702,DEVNAME,DEVIEN,MDQFLG
    1413 N MDIORD
    15  K ^TMP($J,"MDHL7A"),^TMP($J,"MDHL7"),^TMP($J,"MDHL7A1")
     14 K ^TMP($J,"MDHL7A"),^TMP($J,"MDHL7")
    1615 S MDFLAG=0,MDERROR=0,MDQFLG=0
    17  Q:$G(HLMTIENS)=""
    18  S ^TMP($J,"MDHL7A1")=""
    19  S HLREST="^TMP($J,""MDHL7A1"")"
    20  S X=$$MSGIEN^MDHL7U3(HLMTIENS,HLREST) ; This code is to convert the HL7 Message **6**
    21  I $P(X,U)=0 D  Q
    22  . S DEVIEN=0,ECODE=0
    23  . S ERRTX=$P(X,U,2)
    24  . D ^MDHL7X
    25  . Q
    26  I $P(X,U)=1 D XVERT^MDHL7U3("MDHL7A1","MDHL7A")
    27  K HLNODE,^TMP($J,"MDHL7A1")
     16 F I=1:1 X HLNEXT Q:MDQFLG  S ^TMP($J,"MDHL7A",I)=$TR(HLNODE,$C(10),""),J=0 S:HLQUIT<1 MDQFLG=1 F  S J=$O(HLNODE(J)) Q:J<1  S ^TMP($J,"MDHL7A",I,J)=$TR(HLNODE(J),$C(10),"")
     17 K HLNODE
    2818 ;
    2919EN2 ; [Procedure] No Description
    30  S (DEVIEN,DEVNAME)="",I=0
     20 S (DEVIEN,DEVNAME)=""
    3121 F I=1:1 S X=$G(^TMP($J,"MDHL7A",I)) Q:X=""  Q:$E(X,1,3)="OBX"  D
    3222 . S:$E(X,1,3)="MSH" DEVNAME=$P(X,"|",4)
    33  . I DEVNAME="",HLREC("SFN")'="" S DEVNAME=HLREC("SFN")
    3423 . I $E(X,1,3)="MSH",DEVNAME'="Instrument Manager" S DEVIEN=$O(^MDS(702.09,"B",DEVNAME,0))
    3524 . I $E(X,1,3)="OBR" D
     
    5847 I (ZCODE="M")!(ZCODE="B") D  Q:MDERROR  Q:ZCODE="M"  ;
    5948 . S MDFLAG=1,MDERROR=0 ; Tell Medicine that CP is talking to HL7
     49 . ;S MSG(1)=^TMP($J,"MDHL7A",1)
     50 . ;S MSG(2)=^TMP($J,"MDHL7A",2)
    6051 . D ^MDHL7MCA ; Run the Medicine routines
    6152 . Q:MDERROR  ; Medicine found an error and sent an error back
     53 . ;;I ZCODE="M" D GENACK^MDHL7X
    6254 . Q
    6355 S NUMZ=$O(^TMP($J,"MDHL7A",""),-1)
     
    10496 S MDIORD=$P(X,"|",4)
    10597 S MDD702=$S(+MDIORD<1:"",1:$$GETSTDY^MDRPCOT1(MDIORD))
    106  ;I MDD702'="" S MDD702=$$CHK^MDNCHK(MDD702) ; PATCH 11
    10798 S ORIFN=$P(X,"|",3),(EXAM,%)=$P(X,"|",5) I EXAM'="" S EXAM=$P(%,"^",2) I EXAM="" S EXAM=$P(%,"^",1)
    10899 S CPT=$P(X,"|",5) I $P(CPT,"^",3)["CPT" S CPT=$P(CPT,"^",1)
     
    110101 ;  vvv== Added to address the issues of mismatch
    111102 I $G(MDD702)>0 I DFN'=$$GET1^DIQ(702,MDD702,.01,"I") S ERRTX="Patient name Mismatch. Name in PID doesn't match the name in the CP Order #"_MDD702_"." D ^MDHL7X Q
    112  I $G(MDD702)>0 I MDDOB'=$$GET1^DIQ(2,DFN,.03,"I") S ERRTX="Patient DOB Mismatch. DOB in PID doesn't match the DOB in the CP Order #"_MDD702_"." D ^MDHL7X Q
    113103 I DTO="" S ERRTX="Missing required Date/Time of Procedure in OBR" D ^MDHL7X Q
    114104 ;;S UNIQ=$TR($H,",","-")
     
    119109 S MDRTN=$P($G(^MDS(702.09,INST,.1)),"^",1) S:MDRTN'["^" MDRTN="^"_MDRTN
    120110 S X=MDRTN S:X["^" X=$P(X,"^",2) X ^%ZOSF("TEST") I '$T S ERRTX="Processing routine not found" D ^MDHL7X Q  ; IA %10096
    121  D CPTICD^MDHL7U3(X,MDIEN) ; Update CPT and ICD9
    122  D PHY^MDHL7U3(X,MDIEN) ; Get Doc who did the procedure.
    123111 Q
    124112 ;
     
    126114 S X=$G(^TMP($J,"MDHL7A",NUM)) I $E(X,1,3)'="PID" S ERRTX="PID not second record" D ^MDHL7X Q
    127115 S SEG("PID")=X
    128  S MDDOB=$P(X,"|",8) I MDDOB'="" S MDDOB=($E(MDDOB,1,4)-1700)_$E(MDDOB,5,8)
    129116 I $L($P(X,"|",4))'<16 D  I +DFN=-1 Q
    130117 . N ICN
     
    154141 ;
    155142OBX ; [Observation]
     143 ;Q:$P(^TMP($J,"MDHL7A",NUM),"|")'="OBX"
    156144 D @MDRTN
    157145 Q
    158146NEWID(DFN,DATE,INST,MDD702,HLMTIEN) ; Generate a new entry and ID of 703.1
    159  N NEWID,MDFDA,MDIEN,MDNO
     147 N NEWID,MDFDA,MDIEN
    160148 S NEWID=$TR($H,",","-")  ; Create inital ID
    161149 L +(^MDD(703.1,"B")):60 E  Q "-1"
    162  ;^^--- Unable to get a lock in the file
     150 ;^^--- Unable to get an lock in the file
    163151 F  Q:'$D(^MDD(703.1,"B",NEWID))  H 1 S NEWID=$TR($H,",","-")
    164  ;^^--- Search to create a new ID if current ID is in use
     152 ;^^--- Search to create an new ID in current ID is in use
    165153 S MDFDA(703.1,"+1,",.01)=NEWID
    166154 S MDFDA(703.1,"+1,",.02)=DFN
     
    171159 D UPDATE^DIE("","MDFDA","MDIEN")
    172160 L -(^MDD(703.1,"B"))
    173  I $G(MDIEN(1))>0 D  Q MDIEN(1)_U_NEWID
    174  . S ^MDD(703.1,MDIEN(1),.1,0)="^703.11S^0^0"
    175  . S MDNO=$$NTIU^MDRPCW1(+MDD702)
    176  . Q
     161 I $G(MDIEN(1))>0 S ^MDD(703.1,MDIEN(1),.1,0)="^703.11S^0^0" Q MDIEN(1)_U_NEWID
    177162 ; ^^--- Create Subfile and quit
    178163 Q "-1"  ; Unable to create file
Note: See TracChangeset for help on using the changeset viewer.