| 1 | NURCRL4 ;HIRMFO/RM-CARE PLAN RANK ORDER PRINT (cont.) ;8/29/96
 | 
|---|
| 2 |  ;;4.0;NURSING SERVICE;;Apr 25, 1997
 | 
|---|
| 3 | PRINT ; ENTRY FROM NURCRL0 TO PRINT THIS REPORT.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ;  Set up required variables for sort.
 | 
|---|
| 6 |  ;  Calculate patient census over date/time range.
 | 
|---|
| 7 |  K ^TMP($J)
 | 
|---|
| 8 |  D NOW^%DTC S NURCNOW=%,NURCNCP=$O(^GMRD(124.2,"AA","NURSC",2,"Nursing Care Plan",1,0)),NURCINT=$O(^GMRD(124.25,"AA","NURSC","NURSING INTERVENTION",0)),NURCORD=$O(^GMRD(124.25,"AA","NURSC","ORDERABLE",0))
 | 
|---|
| 9 |  I '$$CENSUS^NURCRL2(NURCBGDT,NURCENDT,NURCNOW,NURCSORT)!'NURCNCP!'NURCINT!'NURCORD U IO S NURCPAGE=$$HEADER^NURCRL1(0) W !!,"There is no data for this report." S NURCPAGE=$$HEADER^NURCRL1(-1) S NURCOUT=1 G EXIT
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 |  ;  Loop through ^TMP($J,"NURCEN",DFN) and get DFN to process
 | 
|---|
| 12 |  ;    Loop through ^GMR(124.3,"AA",DFN,DATE) over date time range
 | 
|---|
| 13 |  ;     BEGIN
 | 
|---|
| 14 |  F DFN=0:0 S DFN=$O(^TMP($J,"NURCEN",DFN)) Q:DFN'>0  D DEM^VADPT S NURCBS5=$E(VADM(1))_$P($P(VADM(2),"^",2),"-",3) F NURCDATE=(9999999-NURCENDT):0 S NURCDATE=$O(^GMR(124.3,"AA",DFN,NURCNCP,NURCDATE)) Q:NURCDATE'>0  D
 | 
|---|
| 15 |  .;      Get a care plan
 | 
|---|
| 16 |  .S NURCPDA=$O(^GMR(124.3,"AA",DFN,NURCNCP,NURCDATE,0)) Q:NURCPDA'>0
 | 
|---|
| 17 |  .;      Loop through all entries in SELECTION multiple
 | 
|---|
| 18 |  .;        If ACTIVE(PROBLEM(entry)) THEN
 | 
|---|
| 19 |  .;         BEGIN
 | 
|---|
| 20 |  .F NURCPDA1=0:0 S NURCPDA1=$O(^GMR(124.3,NURCPDA,1,NURCPDA1)) Q:NURCPDA1'>0  S NURCPTRM=+$G(^GMR(124.3,NURCPDA,1,NURCPDA1,0)) I $$ACTIVE^NURCRL1(NURCPTRM,NURCPDA,NURCBGDT,NURCENDT) D
 | 
|---|
| 21 |  ..;           Find frame with CLASSIFICATION=NURSING INTERVENTION that
 | 
|---|
| 22 |  ..;           is under this problem.
 | 
|---|
| 23 |  ..S NURCITRM=$$GETTRM^NURCRL1(NURCPTRM,NURCINT)
 | 
|---|
| 24 |  ..;           Get list of all frames/terms under NURSING INTERVENTION
 | 
|---|
| 25 |  ..;           frame with CLASSIFICATION=ORDERABLE in NURSLIST.
 | 
|---|
| 26 |  ..;           If NURSLIST is not empty then Loop through list
 | 
|---|
| 27 |  ..;              BEGIN
 | 
|---|
| 28 |  ..I $$GETLST^NURCRL1(NURCITRM,NURCORD) F NURCOTRM=0:0 S NURCOTRM=$O(NURSLIST(NURCOTRM)) Q:NURCOTRM'>0  I $D(^GMR(124.3,NURCPDA,1,"B",NURCOTRM)) D
 | 
|---|
| 29 |  ...;                Set up sort arrays for the orderables
 | 
|---|
| 30 |  ...I NURCRTYP=2 D
 | 
|---|
| 31 |  ....K ^TMP($J,"NURSIR",NURCPTRM,9999999-$G(^TMP($J,"NURSORD",NURCPTRM,NURCOTRM)),NURCOTRM)
 | 
|---|
| 32 |  ....S ^TMP($J,"NURSORD",NURCPTRM,NURCOTRM)=$G(^TMP($J,"NURSORD",NURCPTRM,NURCOTRM))+1,^TMP($J,"NURSIR",NURCPTRM,9999999-^TMP($J,"NURSORD",NURCPTRM,NURCOTRM),NURCOTRM)="",^TMP($J,"NURSORD",NURCPTRM,NURCOTRM,NURCBS5)=""
 | 
|---|
| 33 |  ....Q
 | 
|---|
| 34 |  ...I NURCRTYP=3 D
 | 
|---|
| 35 |  ....K ^TMP($J,"NURSIR",9999999-$G(^TMP($J,"NURSORD",NURCOTRM)),NURCOTRM)
 | 
|---|
| 36 |  ....S ^TMP($J,"NURSORD",NURCOTRM)=$G(^TMP($J,"NURSORD",NURCOTRM))+1,^TMP($J,"NURSIR",9999999-^TMP($J,"NURSORD",NURCOTRM),NURCOTRM)="",^TMP($J,"NURSORD",NURCOTRM,NURCBS5)=""
 | 
|---|
| 37 |  ....Q
 | 
|---|
| 38 |  ..;              END
 | 
|---|
| 39 |  ..;            Set up the sort arrays for the problems
 | 
|---|
| 40 |  ..I NURCRTYP'=3 D
 | 
|---|
| 41 |  ...K ^TMP($J,"NURSPR",9999999-$G(^TMP($J,"NURSPROB",NURCPTRM)),NURCPTRM)
 | 
|---|
| 42 |  ...S ^TMP($J,"NURSPROB",NURCPTRM)=$G(^TMP($J,"NURSPROB",NURCPTRM))+1,^TMP($J,"NURSPR",9999999-^TMP($J,"NURSPROB",NURCPTRM),NURCPTRM)="",^TMP($J,"NURSPROB",NURCPTRM,NURCBS5)=""
 | 
|---|
| 43 |  ...Q
 | 
|---|
| 44 |  .;         END
 | 
|---|
| 45 |  ;     END
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 |  ;  Set up variables conditioned on report type.
 | 
|---|
| 48 |  I NURCRTYP'=3 S NURCIPR="NURSPR",NURCPROR="NURSPROB"
 | 
|---|
| 49 |  E  S NURCIPR="NURSIR",NURCPROR="NURSORD"
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 |  ;  Use IO
 | 
|---|
| 52 |  ;  Print Header
 | 
|---|
| 53 |  U IO S NURCPAGE=$$HEADER^NURCRL1(0)
 | 
|---|
| 54 |  I '$D(^TMP($J,NURCIPR)) W !!,"There is no data for this report." S NURCOUT=1 G EXIT
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 |  ;  RANK=0
 | 
|---|
| 57 |  ;  Loop through ^TMP($J,NURCIPR,FREQ,PROBLEM) increasing RANK with
 | 
|---|
| 58 |  ;  each new FREQ
 | 
|---|
| 59 |  ;    BEGIN
 | 
|---|
| 60 |  S (NURCOUT,NURCRANK)=0
 | 
|---|
| 61 |  F NURCFREQ=0:0 S NURCFREQ=$O(^TMP($J,NURCIPR,NURCFREQ)),NURCRANK=NURCRANK+1 Q:NURCFREQ'>0!NURCOUT  F NURCPTRM=0:0 S NURCPTRM=$O(^TMP($J,NURCIPR,NURCFREQ,NURCPTRM)) Q:NURCPTRM'>0!NURCOUT  D
 | 
|---|
| 62 |  .;      WRTPROB(RANK,PROBLEM,FREQ)
 | 
|---|
| 63 |  .;      RANK1=0
 | 
|---|
| 64 |  .;      Loop through ^TMP($J,NURCPROR,PROBLEM,BS5)
 | 
|---|
| 65 |  .;        WRTPPT(BS5)
 | 
|---|
| 66 |  .;      If report type is Dx/Int then
 | 
|---|
| 67 |  .;         BEGIN
 | 
|---|
| 68 |  .;            Loop through ^TMP($J,"NURSIR",PR,FREQ1,ORD) increasing
 | 
|---|
| 69 |  .;            RANK1 by one for each new FREQ
 | 
|---|
| 70 |  .;              BEGIN
 | 
|---|
| 71 |  .S NURCRNK1=0,NURCOUT=$$WRTPROB^NURCRL1(NURCRANK,NURCPTRM,9999999-NURCFREQ) Q:NURCOUT
 | 
|---|
| 72 |  .W !?15 S NURCBS5="" F  S NURCBS5=$O(^TMP($J,NURCPROR,NURCPTRM,NURCBS5)) Q:NURCBS5=""  S NURCOUT=$$WRTPPT^NURCRL1(NURCBS5) Q:NURCOUT
 | 
|---|
| 73 |  .I NURCRTYP=2 D
 | 
|---|
| 74 |  ..S NURCOUT=$$HDRINT^NURCRL1 Q:NURCOUT
 | 
|---|
| 75 |  ..F NURCFRQ1=0:0 S NURCFRQ1=$O(^TMP($J,"NURSIR",NURCPTRM,NURCFRQ1)),NURCRNK1=NURCRNK1+1 Q:NURCFRQ1'>0!NURCOUT  F NURCOTRM=0:0 S NURCOTRM=$O(^TMP($J,"NURSIR",NURCPTRM,NURCFRQ1,NURCOTRM)) Q:NURCOTRM'>0!NURCOUT  D
 | 
|---|
| 76 |  ...;          WRTORD(RANK1,ORD,FREQ1)
 | 
|---|
| 77 |  ...;          Loop through ^TMP($J,"NURSORD",PROBLEM,ORD,BS5)
 | 
|---|
| 78 |  ...;            WRTOPT(BS5)
 | 
|---|
| 79 |  ...S NURCOUT=$$WRTORD^NURCRL1(NURCRNK1,NURCOTRM,9999999-NURCFRQ1) Q:NURCOUT
 | 
|---|
| 80 |  ...W !?20 S NURCBS5="" F  S NURCBS5=$O(^TMP($J,"NURSORD",NURCPTRM,NURCOTRM,NURCBS5)) Q:NURCBS5=""  S NURCOUT=$$WRTOPT^NURCRL1(NURCBS5) Q:NURCOUT
 | 
|---|
| 81 |  ..;        END
 | 
|---|
| 82 |  .;    END
 | 
|---|
| 83 |  ; END
 | 
|---|
| 84 | EXIT Q
 | 
|---|