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

AUPNSEQ.m

Go to the documentation of this file.
  1. AUPNSEQ ;IHS/SD/EFG - API TO CREATE ARRAY OF SEQUENCED INSURERS ; 10/1/2003 10:00:27 AM
  1. ;;99.1;IHS DICTIONARIES (PATIENT);**12**;MAR 09, 1999;Build 9
  1. ;
  1. ; PASS THE PATIENT IEN, DATE OF SERVICE, AND OPTIONALLY, THE
  1. ; CATEGORY TO THIS ROUTINE
  1. ; CATEGORIES ARE : 'M' FOR MEDICAL
  1. ; 'D' FOR DENTAL
  1. ; 'O' FOR OPTOMETRY
  1. ; 'R' FOR PHARMACY
  1. ; 'P' FOR MENTAL HEALTH
  1. ; 'A' FOR AUTO ACCIDENT/TORT
  1. ; 'W' FOR WORKMAN'S COMP
  1. ;
  1. ; IF A CATEGORY IS PASSED TO THIS ROUTINE, THE ARRAY "SEQAR" WILL
  1. ; CONTAIN ONLY THE RECORDS FOR THE SPECIFIC CATEGORY.
  1. ; IF NO CATEGORY IS PASSED, THE ARRAY WILL CONTAIN THE
  1. ; RECORDS EACH CATEGORY FOR THE SPECIFIED DATE OF SERVICE.
  1. ;
  1. ; THE ARRAY'S FIRST SUBSCRIPT IS JOB#
  1. ; MAKE SURE WHEN USING THIS API, YOU KILL THE ARRAY
  1. ; USING THE JOB# WHEN YOU'RE DONE
  1. ;
  1. ; ARRAY LAYOUT :
  1. ; INSPTR = INSURER POINTER
  1. ; FOR MEDICAID, THIS IS A SCREENED POINTER THAT ONLY
  1. ; ALLOWS "MEDICAID". PLANPTR WILL CONTAIN
  1. ; THE POINTER TO THE SPECIFIC INSURER
  1. ; INSTYPE = INSURER TYPE FROM THE .21 FIELD IN THE INSURER FILE
  1. ; COV : FOR MEDICARE AND RAILROAD, THIS WILL BE AN "A" OR "B"
  1. ; FOR MEDICAID, THIS IS A FREE TEXT FIELD
  1. ; FOR PRIVATE, THIS WILL BE FROM THE COVERAGE POINTER
  1. ; FROM THE POLICY HOLDER FILE
  1. ; PLANPTR = MEDICAID IS THE ONLY INSURER THAT USES A PLAN NAME FIELD
  1. ; WHICH IS A POINTER BACK TO THE INSURER FILE
  1. ; BEGDT = ELIGIBILITY BEGINNING DATE
  1. ; ENDDT = ELIGIBILITY ENDING DATE
  1. ;
  1. START(DFN,DOS,CAT) ; PEP - ENTRY POINT FOR EXTERNAL PACKAGES
  1. K SEQAR($J)
  1. I '$D(CAT) G ALL ; IF NO CAT, SHOW ALL CATEGORIES FOR DOS
  1. S AUPNDOS="" ; ELSE SHOW RECORDS FOR DOS AND SPECIFIC CATEGORY
  1. K HIT
  1. F S AUPNDOS=$O(^AUPNICP("EFF2",DFN,AUPNDOS),-1) Q:'AUPNDOS!$D(HIT) D
  1. . I AUPNDOS>DOS Q
  1. . S AUPNREC=0
  1. . F S AUPNREC=$O(^AUPNICP("EFF2",DFN,AUPNDOS,CAT,AUPNREC)) Q:'AUPNREC D
  1. .. S SEQREC=$G(^AUPNICP(AUPNREC,0))
  1. .. S SEQ=$P(SEQREC,U,5)
  1. .. S INSPTR=$P(SEQREC,U,3)
  1. .. S INSTYPE=$P(^AUTNINS(INSPTR,2),U,1)
  1. .. S COV=$P(SEQREC,U,7)
  1. .. S PLANPTR=$P(SEQREC,U,11)
  1. .. S BEGDT=$P(SEQREC,U,8)
  1. .. S ENDDT=$P(SEQREC,U,9)
  1. .. S HIT=""
  1. .. S SEQAR($J,CAT,SEQ)=INSPTR_"^"_INSTYPE_"^"_COV_"^"_PLANPTR_"^"_BEGDT_"^"_ENDDT
  1. Q
  1. ALL ;
  1. S AUPNDOS=0
  1. F S AUPNDOS=$O(^AUPNICP("EFF2",DFN,AUPNDOS)) Q:'AUPNDOS D
  1. . I AUPNDOS>DOS Q
  1. . S AUPNCAT=""
  1. . F S AUPNCAT=$O(^AUPNICP("EFF2",DFN,AUPNDOS,AUPNCAT)) Q:AUPNCAT="" D
  1. .. S AUPNREC=0
  1. .. F S AUPNREC=$O(^AUPNICP("EFF2",DFN,AUPNDOS,AUPNCAT,AUPNREC)) Q:'AUPNREC D
  1. ... S SEQREC=$G(^AUPNICP(AUPNREC,0))
  1. ... S SEQ=$P(SEQREC,U,5)
  1. ... S INSPTR=$P(SEQREC,U,3)
  1. ... S INSTYPE=$P(^AUTNINS(INSPTR,2),U,1)
  1. ... S COV=$P(SEQREC,U,7)
  1. ... S PLANPTR=$P(SEQREC,U,11)
  1. ... S BEGDT=$P(SEQREC,U,8)
  1. ... S ENDDT=$P(SEQREC,U,9)
  1. ... S SEQAR($J,AUPNCAT,SEQ)=INSPTR_"^"_INSTYPE_"^"_COV_"^"_PLANPTR_"^"_BEGDT_"^"_ENDDT
  1. Q