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

HBHCR19A.m

Go to the documentation of this file.
  1. HBHCR19A ;LR VAMC(IRMS)/MJT - HBHC file 632 rpt, DX info by date range, sorted by DX category, then pt name, includes: name, last four, DX (code & text), w/category subtotals & grand total, calls HBHCR19B & DX^HBHCUTL3 ;12/21/05 3:39pm
  1. ;;1.0;HOSPITAL BASED HOME CARE;**8,14,22,25**;NOV 01, 1993;Build 45
  1. ;
  1. ; This routine references the following supported ICRs:
  1. ; 5747 $$CODEC^ICDEX
  1. ; 5747 $$CSI^ICDEX
  1. ; 5681 $$CODELIST^LEX10CS
  1. ; 5679 $$IMPDATE^LEXU
  1. ;
  1. ;******************************************************************************
  1. ;******************************************************************************
  1. ; --- ROUTINE MODIFICATION LOG ---
  1. ;
  1. ;PKG/PATCH DATE DEVELOPER MODIFICATION
  1. ;----------- ---------- ----------- ----------------------------------------
  1. ;HBH*1.0*25 FEB 2012 K GUPTA Support for ICD-10 Coding System
  1. ;******************************************************************************
  1. ;******************************************************************************
  1. ;
  1. D START^HBHCUTL
  1. G:(HBHCBEG1=-1)!(HBHCEND1=-1) EXIT
  1. K ^TMP($J)
  1. PROMPT1 ; Prompt user for whether to include all ICD Diagnosis Codes
  1. K DD,D0 W !!,"Do you wish to include ALL ICD Diagnosis Codes on the report" S %=2 D YN^DICN
  1. G:(%=-1) EXIT
  1. I %=1 S HBHCFLAG=1 G START2
  1. I %=0 W !!,"A 'Yes' response will include ALL ICD Diagnosis Codes. A 'No' response will",!,"prompt for an individual ICD Diagnosis Code." G PROMPT1
  1. PROMPT2 ; Prompt user for individual ICD9 Diagnosis Code
  1. W !
  1. K DIR S DIR(0)="PO^80:AEMQ"
  1. ;filter dx codes belonging to a particular coding system based on report date range
  1. S DIR("S")="I ("""_$$ICDCSYS^HBHCUTL3(HBHCBEG1,HBHCEND1)_""")[("",""_$$CSI^ICDEX(80,Y)_"","")"
  1. D ^DIR
  1. G:($D(DTOUT))!($D(DUOUT)) EXIT
  1. G:(Y=-1) START1
  1. S HBHCTMP=Y
  1. PROMPT3 ; Prompt user for whether ICD9 category is to be considered a range (e.g. Diabetes ICD9 codes range from 250 to 250.93 (as of 8/97))
  1. W !!,"Do you wish to include ALL codes within category "_$P($P(HBHCTMP,U,2),".") S %=1 D YN^DICN
  1. G:(%=-1) START1
  1. I %=0 W !!,"A 'Yes' response will include ALL ICD Diagnosis Codes withing the category.",!,"A 'No' response selects the specific ICD9 Diagnosis Code." G PROMPT3
  1. S HBHCCAT=$P($P(HBHCTMP,U,2),".")
  1. N HBHCDXIEN,HBHCDXCODE,HBHCDXCSYS
  1. S HBHCDXIEN=$P(HBHCTMP,U,1)
  1. S HBHCDXCSYS=$$CSI^ICDEX("80",HBHCDXIEN)
  1. I %=2 D I 1
  1. . S ^TMP($J,HBHCCAT,$P(HBHCTMP,U,2))=""
  1. . S HBHCDXCODE=$$CODEC^ICDEX(80,HBHCDXIEN)
  1. . Q:+HBHCDXCODE<0
  1. . S ^TMP($J,"B",HBHCDXCODE)=""
  1. E I %=1 D I 1 ; Setup ^TMP($J array with range of Dx
  1. . K ^TMP("HBHCLEXDATA",$J)
  1. . I +$$CODELIST^LEX10CS2(HBHCDXCSYS,HBHCCAT_".*","HBHCLEXDATA",$$IMPDATE^LEXU(HBHCDXCSYS))>0 D
  1. . . F I=1:1:+$G(^TMP("HBHCLEXDATA",$J,0)) D
  1. . . . S HBHCCATB=$G(^TMP("HBHCLEXDATA",$J,I))
  1. . . . Q:HBHCCATB=""
  1. . . . S ^TMP($J,HBHCCAT,HBHCCATB)=""
  1. . . . S ^TMP($J,"B",HBHCCATB)=""
  1. G PROMPT2
  1. START1 ; Initialization 1
  1. G:'$D(^TMP($J)) EXIT
  1. START2 ; Initialization 2
  1. S %ZIS="Q",HBHCCC=0 K IOP,ZTIO,ZTSAVE D ^%ZIS G:POP EXIT
  1. I $D(IO("Q")) S ZTRTN="DQ^HBHCR19A",ZTDESC="HBPC ICD Code/Text Report",ZTSAVE("HBHC*")="",ZTSAVE("^TMP($J,")="" D ^%ZTLOAD G EXIT
  1. DQ ; De-queue
  1. U IO
  1. D INITIAL^HBHCR19B,TODAY^HBHCUTL D:IO'=IO(0)!($D(IO("S"))) HDRRANGE^HBHCUTL
  1. I '$D(IO("S")),(IO=IO(0)) S HBHCCC=HBHCCC+1 W @IOF D HDRRANGE^HBHCUTL
  1. LOOP ; Loop thru ^HBHC(632,"C" (appointment date) cross-ref to build report
  1. S X1=HBHCBEG1,X2=-1 D C^%DTC S HBHCAPDT=X_.9999
  1. F S HBHCAPDT=$O(^HBHC(632,"C",HBHCAPDT)) Q:(HBHCAPDT="")!($P(HBHCAPDT,".")>HBHCEND1) S HBHCDFN="" F S HBHCDFN=$O(^HBHC(632,"C",HBHCAPDT,HBHCDFN)) Q:HBHCDFN="" S HBHCNOD0=^HBHC(632,HBHCDFN,0) D:$P(HBHCNOD0,U,7)="" PROCESS
  1. W:'$D(^TMP("HBHC",$J)) !!,"No data found for Date Range selected."
  1. I $D(^TMP("HBHC",$J)) D PRTLOOP^HBHCR19B W !!,HBHCZ,!,$$ICDTEXT^HBHCUTL3(HBHCBEG1,HBHCEND1)_" Diagnosis Categories Total: ",HBHCTOT,!,HBHCZ
  1. D ENDRPT^HBHCUTL1
  1. EXIT ; Exit module
  1. D EXIT^HBHCR19B
  1. Q
  1. ;SETTMP ; Set ^TMP($J
  1. ;S ^TMP($J,HBHCCAT,HBHCCATB)="",^TMP($J,"B",$P(^ICD9(HBHCICDP,0),U))=""
  1. ;Q
  1. PROCESS ; Process record & build ^TMP("HBHC",$J) global
  1. S HBHCDPT0=^DPT($P(HBHCNOD0,U),0)
  1. DX ; Process Diagnosis (DX), HBHCDFN must be defined prior to call, returns code plus text in local array HBHCDX
  1. D DX^HBHCUTL3
  1. S HBHCI=0 F S HBHCI=$O(HBHCDX(HBHCI)) Q:HBHCI'>0 S HBHCDX="HBHCDX("_HBHCI_")" D:$D(HBHCFLAG) SET I '$D(HBHCFLAG) D:$D(^TMP($J,"B",$P(@HBHCDX,HBHCSP2))) SET
  1. Q
  1. SET ; Set ^TMP node
  1. ; HBH*1*22 shortens SSN to Last 4 only for display; following full SSN left intact since used as subscript
  1. S ^TMP("HBHC",$J,$P(@HBHCDX,"."),$E($P(HBHCDPT0,U),1,24),$E($P(HBHCDPT0,U,9),1,3)_"-"_$E($P(HBHCDPT0,U,9),4,5)_"-"_$E($P(HBHCDPT0,U,9),6,9),@HBHCDX)=""
  1. Q