| [613] | 1 | IBDFN11 ;ALB/CMR - ENCOUNTER FORM - (entry points for reprint of dynamic data) ;5/21/93
 | 
|---|
 | 2 |  ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 | REPRINT(IBPFID,LIST,ARY) ; -- returns dynamic lists previously printed on a form
 | 
|---|
 | 5 |  ; -- input    IBPFID = ien of forms tracking file
 | 
|---|
 | 6 |  ;             LIST = ien of selection list file
 | 
|---|
 | 7 |  ;             ARY = name of array to return list in
 | 
|---|
 | 8 |  ;
 | 
|---|
 | 9 |  ; -- output   The format of the returned array is as follows:
 | 
|---|
 | 10 |  ;            @ARY(0) = count of array element (0 if nothing found)
 | 
|---|
 | 11 |  ;            @ARY(1) = provider ien^provider
 | 
|---|
 | 12 |  ;         or @ARY(1) = problem ien^problem text^ICD code
 | 
|---|
 | 13 |  ;         or @ARY(1) = classification question
 | 
|---|
 | 14 |  ;
 | 
|---|
 | 15 |  Q:'IBPFID!('LIST)
 | 
|---|
 | 16 |  N FID,ITEM,IBDIEN,NODE,COUNT
 | 
|---|
 | 17 |  ; -- initialize counter
 | 
|---|
 | 18 |  S COUNT=0
 | 
|---|
 | 19 |  ; -- clean out storage area
 | 
|---|
 | 20 |  K @ARY
 | 
|---|
 | 21 |  ; -- get field ids associated with this list
 | 
|---|
 | 22 |  S FID="S"_LIST
 | 
|---|
 | 23 |  S XREF=$S($O(^IBD(357.96,IBPFID,"AD",FID))[LIST:"AD",$O(^IBD(357.96,IBPFID,"AC",FID))[LIST:"AC",1:"") Q:XREF']""
 | 
|---|
 | 24 |  S FID=$O(^IBD(357.96,IBPFID,XREF,FID)) Q:FID'[LIST  D
 | 
|---|
 | 25 |  .; -- get all items for the field id
 | 
|---|
 | 26 |  .S ITEM=0 F  S ITEM=$O(^IBD(357.96,IBPFID,XREF,FID,ITEM)) Q:'ITEM  D
 | 
|---|
 | 27 |  ..; -- get ien for dynamic data entry
 | 
|---|
 | 28 |  ..S IBDIEN=0 F  S IBDIEN=$O(^IBD(357.96,IBPFID,XREF,FID,ITEM,IBDIEN)) Q:'IBDIEN  S NODE=$S(XREF="AD":$G(^IBD(357.96,IBPFID,2,IBDIEN,0)),1:$G(^IBD(357.96,IBPFID,1,IBDIEN,0))) I NODE]"" D
 | 
|---|
 | 29 |  ...; -- set output array with dynamic data previously printed
 | 
|---|
 | 30 |  ...S COUNT=COUNT+1
 | 
|---|
 | 31 |  ...S @ARY@(COUNT)=$P(NODE,"^",4)_"^"_$P(NODE,"^",8)_"^"_$S(ARY["GMP SELECT PATIENT ACTIVE PROBLEMS":$P($G(^ICD9(+$G(^AUPNPROB(+$P(NODE,"^",4),0)),0)),"^"),1:"")
 | 
|---|
 | 32 |  S @ARY@(0)=COUNT
 | 
|---|
 | 33 |  Q
 | 
|---|