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

PXRHS14.m

Go to the documentation of this file.
  1. PXRHS14 ;ISL/SBW - PCE Visit data extract routine ;7/25/96 09:06
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;;Aug 12, 1996
  1. ; Extract returns visit data in block of OCCLIM. Can be called multiple
  1. ; times for a patient. Parameter passing by reference with FROM and
  1. ; RECNO variables allows the routine to process multiple calls without
  1. ; missing data.
  1. VISIT(DFN,FROM,RECNO,OCCLIM,CATCODE,PSTAT) ; Control branching
  1. ;INPUT: DFN - Pointer to PATIENT file (#2).
  1. ; FROM - Index entry from which to begin the list.
  1. ; Passed by reference.
  1. ; RECNO - Record number. Passed by reference.
  1. ; - Should be null for 1st call to this entry point.
  1. ; OCCLIM - Maximum number of visits to return.
  1. ; CATCODE - Pattern Match which controls visit data that is
  1. ; returned (Can include multiple codes).
  1. ; A = AMBULATORY
  1. ; H = HOSPITALIZATION
  1. ; I = IN HOSPITAL
  1. ; C = CHART REVIEW
  1. ; T = TELECOMMUNICATIONS
  1. ; N = NOT FOUND
  1. ; S = DAY SURGERY
  1. ; O = OBSERVATION
  1. ; E = EVENT (HISTORICAL)
  1. ; R = NURSING HOME
  1. ; D = DAILY HOSPITALIZATION DATA
  1. ; X = ANCILLARY PACKAGE DAILY DATA
  1. ; PSTAT - Patient Status.
  1. ; 1 = Inpatient
  1. ; 0 or NULL = Outpatient
  1. ;
  1. ;OUTPUT:
  1. ; Data from VISIT (9000010) file except for hosp. loc. abbr.
  1. ; ^TMP("PXV",$J,InvExDt,RecNo,0) = VISIT/ADMIT DATE&TIME [I;.01]
  1. ; ^ LOC. OF ENCOUNTER [E;.06] ^ SERVICE CATEGORY [E;.07]
  1. ; ^ CLINIC [E;.08] ^ WALK IN/APPT (deleted field always null)[E;.16]
  1. ; ^ EVALUATION AND MANAGEMENT CODE (deleted field always null)[E;.17]
  1. ; ^ HOSPITAL LOCATION [E;.22]
  1. ;
  1. ; [] = [I(nternal)/E(xternal); Field #]
  1. ; Subscripts:
  1. ; InvExDt - Inverted Visit Date from "AA" x-ref
  1. ; RecNo - Record Number
  1. ;
  1. ; Calling routine is required to delete ^TMP("PXV",$J). It can be
  1. ; deleted between multiple calls to this entry point or after
  1. ; the calling routine makes the last call depending on how the data
  1. ; needs to be accumulated.
  1. Q:$G(DFN)']""!'$D(^AUPNVSIT("AA",DFN))
  1. N PXCNT,FIRST
  1. N DIC,DIQ,DR,DA,VISIT,LOC,SERCAT,CLINIC,WALKAPT,LEVEL,HLOC
  1. S FIRST=1
  1. S:+$G(OCCLIM)'>0 OCCLIM=999
  1. S:+$G(FROM)'>0 FROM=""
  1. S:+$G(RECNO)'>0 RECNO=""
  1. S PXCNT=0
  1. F S:(RECNO=""!'FIRST) FROM=$O(^AUPNVSIT("AA",DFN,FROM)) Q:+FROM'>0 D Q:PXCNT'<OCCLIM
  1. . I 'FIRST S RECNO=0
  1. . S FIRST=0
  1. . F S RECNO=$O(^AUPNVSIT("AA",DFN,FROM,RECNO)) Q:+RECNO'>0 D Q:PXCNT'<OCCLIM
  1. . . N REC
  1. . . S DIC=9000010,DA=RECNO,DIQ="REC(",DIQ(0)="IE"
  1. . . S DR=".01;.06;.07;.08;.09;.11;.22;15002"
  1. . . D EN^DIQ1
  1. . . Q:'$D(REC)
  1. . . Q:$G(CATCODE)'[REC(9000010,DA,.07,"I")!(REC(9000010,DA,.09,"I")'>0)!+(REC(9000010,DA,.11,"I"))!(+$G(PSTAT)'=+REC(9000010,DA,15002,"I"))
  1. . . S VISIT=REC(9000010,DA,.01,"I")
  1. . . S LOC=REC(9000010,DA,.06,"E")
  1. . . S SERCAT=REC(9000010,DA,.07,"E")
  1. . . S CLINIC=REC(9000010,DA,.08,"E")
  1. . . ;- return null for deleted fields .16 and .17
  1. . . S WALKAPT="" ;REC(9000010,DA,.16,"E")
  1. . . S LEVEL="" ;REC(9000010,DA,.17,"E")
  1. . . S HLOC=REC(9000010,DA,.22,"E")
  1. . . S ^TMP("PXV",$J,FROM,RECNO)=VISIT_U_LOC_U_SERCAT_U_CLINIC_U_WALKAPT_U_HLOC
  1. . . S PXCNT=PXCNT+1
  1. Q