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

DVBCHS0.m

Go to the documentation of this file.
  1. DVBCHS0 ;ALB/JRP - C & P EXTRACT FOR HEALTH SUMMARY;11-JAN-95
  1. ;;2.7;AMIE;**193**;Apr 10, 1995;Build 84
  1. HSCP(PATPTR,INVBEGDT,INVENDDT,OUTCODE,ARRAY) ;MAIN ENTRY POINT
  1. ;INPUT : PATPTR - Pointer to PATIENT file (#2)
  1. ; INVBEGDT - Beginning date in inverse FileMan format
  1. ; - Defaults to one year before today
  1. ; INVENDDT - Ending date in inverse FileMan format
  1. ; - Defaults to today
  1. ; OUTCODE - Flag indicating which optional nodes to return
  1. ; 0 = Do not return any optional nodes
  1. ; 1 = Node 1 should also be returned
  1. ; 2 = Node 2 should also be returned
  1. ; 3 = Nodes 1 & 2 should also be returned (default)
  1. ; ARRAY - Where to store output (full global reference)
  1. ; - Defaults to ^TMP("DVBC",$J)
  1. ;
  1. ;OUTPUT : None
  1. ; ARRAY(InvExDt,Type,0) = Code ^ DATE OF EXAM [.06]
  1. ; ^ EXAM TYPE [.03] ^ EXAMINING PHYSICIAN [.07]
  1. ; ^ PRIORITY OF EXAM [396.3;9]
  1. ; --> ARRAY(InvExDt,Type,1) = ROUTING LOCATION [396.3;24]
  1. ; ^ OWNER DOMAIN [396.3;28] ^ TRANSFERRED OUT TO [62]
  1. ; --> ARRAY(InvExDt,Type,2) = REQUEST STATUS [396.3;17]
  1. ; ^ APPROVED BY [396.3;25] ^ APPROVAL DATE/TIME [396.3;26]
  1. ; ARRAY(InvExDt,Type,"RES",0) = Number of lines in EXAM RESULTS
  1. ; ARRAY(InvExDt,Type,"RES",X) = Line X of EXAM RESULTS [70]
  1. ;
  1. ; Subscripts:
  1. ; InvExDt - Inverse FileMan date of DATE OF EXAM [.06]
  1. ; Type - Poiner value of EXAM TYPE [.03]
  1. ;
  1. ; Code used as follows:
  1. ; 1 = Exam was performed locally
  1. ; 2 = Exam was performed by another facility
  1. ; 3 = Exam was performed locally for another facility
  1. ;
  1. ; All dates will be in the FileMan format
  1. ;
  1. ; With the exception of dates, 'N/A' (not applicable) and 'UNKNOWN'
  1. ; will be used for field values when appropriate
  1. ;
  1. ; Optional nodes are marked by an arrow (-->)
  1. ;
  1. ;NOTES : Output array will be initialized (KILLed)
  1. ; : Information for an exam is only returned when
  1. ; 1. The exam status is COMPLETED
  1. ; 2. The status of the request containing the exam is
  1. ; a) RELEASED TO RO, NOT PRINTED
  1. ; b) COMPLETED, PRINTED BY RO
  1. ; c) COMPLETED, TRANSFERRED OUT
  1. ;
  1. ;
  1. ;CHECK INPUT/SET DEFAULTS
  1. Q:('$D(^DPT((+$G(PATPTR)),0)))
  1. S INVBEGDT=+$G(INVBEGDT)
  1. S:('INVBEGDT) INVBEGDT=9999999-(DT-10000)
  1. S INVENDDT=+$G(INVENDDT)
  1. S:('INVENDDT) INVENDDT=9999999-DT
  1. S OUTCODE=$G(OUTCODE)
  1. S:((OUTCODE="")!(OUTCODE>3)!(OUTCODE<0)) OUTCODE=3
  1. S:($G(ARRAY)="") ARRAY="^TMP(""DVBC"",$J)"
  1. ;KILL OUTPUT ARRAY
  1. K @ARRAY
  1. ;DECLARE VARIABLES
  1. N BEGDATE,ENDDATE,TYPEPTR,EXAMPTR,TMP,NODE0
  1. ;CONVERT INVERSE DATES TO NORMAL DATES
  1. S BEGDATE=9999999-INVBEGDT
  1. S ENDDATE=9999999-INVENDDT
  1. ;NO EXAMS ON FILE
  1. Q:('$D(^DVB(396.4,"APS",PATPTR)))
  1. ;LOOK FOR COMPLETED EXAMS
  1. S TYPEPTR=0
  1. F S TYPEPTR=+$O(^DVB(396.4,"APS",PATPTR,TYPEPTR)) Q:('TYPEPTR) D
  1. .S EXAMPTR=0
  1. .F S EXAMPTR=+$O(^DVB(396.4,"APS",PATPTR,TYPEPTR,"C",EXAMPTR)) Q:('EXAMPTR) D
  1. ..;GET ZERO NODE OF EXAM
  1. ..S NODE0=$G(^DVB(396.4,EXAMPTR,0))
  1. ..;MAKE SURE EXAM IS WITHIN DATE RANGE
  1. ..S TMP=+$P(NODE0,"^",6)
  1. ..Q:(('TMP)!(TMP<BEGDATE)!(TMP>ENDDATE))
  1. ..;MAKE SURE REQUEST CONTAINING EXAM HAS BEEN RELEASED
  1. ..S TMP=+$P(NODE0,"^",2)
  1. ..Q:('TMP)
  1. ..S TMP=$P($G(^DVB(396.3,TMP,0)),"^",18)
  1. ..;AJF ; 2507 Request Status Conversion
  1. ..S TMP=$$RSTAT^DVBCUTL8(TMP)
  1. ..Q:((TMP'="C")&(TMP'="R")&(TMP'="CT"))
  1. ..;SET NODE ZERO OF OUTPUT
  1. ..D OUT0^DVBCHS1(EXAMPTR,ARRAY)
  1. ..;SET NODE 'RES' OF OUTPUT
  1. ..D OUTRES^DVBCHS1(EXAMPTR,ARRAY)
  1. ..Q:('OUTCODE)
  1. ..;SET NODE ONE OF OUTPUT (OPTIONAL)
  1. ..D:((OUTCODE=1)!(OUTCODE=3)) OUT1^DVBCHS2(EXAMPTR,ARRAY)
  1. ..;SET NODE TWO OF OUTPUT (OPTIONAL)
  1. ..D:((OUTCODE=2)!(OUTCODE=3)) OUT2^DVBCHS2(EXAMPTR,ARRAY)
  1. Q